2017/1/13
battle文件夹-日语注释修改完毕
This commit is contained in:
parent
bea5ac05b3
commit
e53aa766d9
1855
battle/battle.c
1855
battle/battle.c
File diff suppressed because it is too large
Load Diff
@ -8,8 +8,9 @@
|
||||
#include "pet_skill.h"
|
||||
|
||||
struct B_AI_RESULT {
|
||||
BATTLE_COM command; /* 窒毛允月井 */
|
||||
int target; /* 簿卞 */
|
||||
BATTLE_COM command; /* 何をするか */
|
||||
int target; /* 誰に */
|
||||
|
||||
};
|
||||
|
||||
static int BATTLE_ai_normal( int, int, BATTLE_ENTRY *,struct B_AI_RESULT *);
|
||||
@ -38,7 +39,7 @@ int BATTLE_ai_all( int battleindex, int side, int turn)
|
||||
|
||||
mode = CHAR_getWorkInt( charaindex, CHAR_WORKTACTICS);
|
||||
if( mode < 0 || mode >= arraysizeof( functbl)){
|
||||
//print( "BATTLE_ai_all 中,战斗逻辑模式很奇怪(%s)(%d)\n",
|
||||
//print( "BATTLE_ai_all 中,战斗逻辑模式很奇怪(%s)(%d)\n",
|
||||
//CHAR_getUseName( charaindex ), mode );
|
||||
mode = 1;
|
||||
}
|
||||
@ -107,22 +108,23 @@ int BATTLE_ai_one( int charaindex, int battleindex, int side, int turn)
|
||||
struct B_AI_RESULT result;
|
||||
int mode;
|
||||
|
||||
/* 由仿丢□正民尼永弁 */
|
||||
/* パラメータチェック */
|
||||
if( BATTLE_CHECKINDEX( battleindex ) == FALSE )return BATTLE_ERR_BATTLEINDEX;
|
||||
if( BATTLE_CHECKSIDE( side ) == FALSE )return BATTLE_ERR_PARAM;
|
||||
if( BATTLE_CHECKSIDE( side ^1) == FALSE )return BATTLE_ERR_PARAM;
|
||||
|
||||
/* 及扔奶玉隋垫丹 */
|
||||
/* 衬平乓仿动陆反 仃月 */
|
||||
/* 両方のサイド共行う */
|
||||
/* 敵キャラ以外は抜ける */
|
||||
|
||||
if( BattleArray[battleindex].Side[side].type != BATTLE_S_TYPE_ENEMY ) return 0;
|
||||
|
||||
/* 覆础扔奶玉 */
|
||||
/* 反対側サイド */
|
||||
pEntry = BattleArray[battleindex].Side[side^1].Entry;
|
||||
|
||||
mode = CHAR_getWorkInt( charaindex, CHAR_WORKTACTICS);
|
||||
/* 质 毛蕊曰坌仃月 */
|
||||
/* 処理を振り分ける */
|
||||
if( mode < 0 || mode >= arraysizeof( functbl)) return FALSE;
|
||||
/* 质 毛蕊曰坌仃月 */
|
||||
/* 処理を振り分ける */
|
||||
if( functbl[mode] != NULL ) {
|
||||
rc = functbl[mode]( turn, charaindex, pEntry, &result);
|
||||
}
|
||||
@ -137,13 +139,13 @@ int BATTLE_ai_one( int charaindex, int battleindex, int side, int turn)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* 骚卞锹澎毛瑁户月 */
|
||||
/* 普通に相手を決める */
|
||||
|
||||
#define B_AI_NORMAL_ATTACKOPTION "at" /* 猾左皿扑亦件 */
|
||||
#define B_AI_NORMAL_GUARDOPTION "gu" /* 豢左皿扑亦件 */
|
||||
#define B_AI_NORMAL_MAGICOPTION "ma" /* 热诸左皿扑亦件 */
|
||||
#define B_AI_NORMAL_ESCAPEOPTION "es" /* 仆月左皿扑亦件 */
|
||||
#define B_AI_NORMAL_WAZAOPTION "wa" /* 左皿扑亦件 */
|
||||
#define B_AI_NORMAL_ATTACKOPTION "at" /* 攻撃オプション */
|
||||
#define B_AI_NORMAL_GUARDOPTION "gu" /* 防御オプション */
|
||||
#define B_AI_NORMAL_MAGICOPTION "ma" /* 呪術オプション */
|
||||
#define B_AI_NORMAL_ESCAPEOPTION "es" /* 逃げるオプション */
|
||||
#define B_AI_NORMAL_WAZAOPTION "wa" /* 技オプション */
|
||||
#ifdef _ENEMY_ATTACK_AI
|
||||
#define B_AI_NORMAL_RANDAOPTION "rn"
|
||||
#define B_AI_NORMAL_RANDOMOPTIONNUM 1
|
||||
@ -155,7 +157,7 @@ int BATTLE_ai_one( int charaindex, int battleindex, int side, int turn)
|
||||
#define B_AI_NORMAL_ESCAPESUBOPTIONNUM 1
|
||||
#define B_AI_NORMAL_WAZASUBOPTIONNUM 7
|
||||
|
||||
/* 左皿扑亦件娄醒及 侬及烂聒 */
|
||||
/* オプション引数の文字の定義 */
|
||||
#define B_AI_NORMAL_TARGET_ALL 1
|
||||
#define B_AI_NORMAL_TARGET_PLAYER 2
|
||||
#define B_AI_NORMAL_TARGET_PET 3
|
||||
@ -203,11 +205,11 @@ static int BATTLE_ai_normal( int turn, int charaindex,
|
||||
BATTLE_ENTRY *pEntry,
|
||||
struct B_AI_RESULT *result)
|
||||
{
|
||||
int at[B_AI_NORMAL_ATTACKSUBOPTIONNUM] = { 0,0,0}; /* 猾左皿扑亦件 */
|
||||
int gu[B_AI_NORMAL_GUARDSUBOPTIONNUM] = {0}; /* 左皿扑亦件 */
|
||||
int ma[B_AI_NORMAL_MAGICSUBOPTIONNUM] = {0}; /* 左皿扑亦件 */
|
||||
int es[B_AI_NORMAL_ESCAPESUBOPTIONNUM] = {0}; /* 左皿扑亦件 */
|
||||
int wa[B_AI_NORMAL_WAZASUBOPTIONNUM] = {0,0,0,0, 0,0,0};/* 左皿扑亦件 */
|
||||
int at[B_AI_NORMAL_ATTACKSUBOPTIONNUM] = { 0,0,0}; /* 攻撃オプション */
|
||||
int gu[B_AI_NORMAL_GUARDSUBOPTIONNUM] = {0}; /* オプション */
|
||||
int ma[B_AI_NORMAL_MAGICSUBOPTIONNUM] = {0}; /* オプション */
|
||||
int es[B_AI_NORMAL_ESCAPESUBOPTIONNUM] = {0}; /* オプション */
|
||||
int wa[B_AI_NORMAL_WAZASUBOPTIONNUM] = {0,0,0,0, 0,0,0};/* オプション */
|
||||
#ifdef _ENEMY_ATTACK_AI
|
||||
int rn[B_AI_NORMAL_RANDOMOPTIONNUM] = {1};
|
||||
#endif
|
||||
@ -221,7 +223,7 @@ static int BATTLE_ai_normal( int turn, int charaindex,
|
||||
char buff2[256];
|
||||
|
||||
if( turn == 1 ) {
|
||||
//print( "应该没这回事。\n" );
|
||||
//print( "应该没这回事。\n" );
|
||||
return FALSE;
|
||||
}
|
||||
if( NPC_Util_GetStrFromStrWithDelim( CHAR_getWorkChar( charaindex, CHAR_WORKBATTLE_TACTICSOPTION),
|
||||
@ -322,7 +324,7 @@ static int BATTLE_ai_normal( int turn, int charaindex,
|
||||
if( wa[i] != 0 )break;
|
||||
}
|
||||
if( i >= B_AI_NORMAL_WAZASUBOPTIONNUM ){
|
||||
//print( "无指定任何的攻击方式。\n" );
|
||||
//print( "无指定任何的攻击方式。\n" );
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
@ -513,7 +515,7 @@ static int BATTLE_ai_normal( int turn, int charaindex,
|
||||
result->command = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLECOM1 );
|
||||
return TRUE;
|
||||
}else{
|
||||
// print( "此项技能尚未设定(%s):(%d)\n",
|
||||
// print( "此项技能尚未设定(%s):(%d)\n",
|
||||
// CHAR_getUseName( charaindex), mode - B_AI_WAZAMODE0 );
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -12,7 +12,7 @@
|
||||
#include "magic_base.h"
|
||||
#include "handletime.h"
|
||||
|
||||
#ifdef _PROFESSION_SKILL // WON ADD 人物职业技能
|
||||
#ifdef _PROFESSION_SKILL // WON ADD 人物职业技能
|
||||
#include "profession_skill.h"
|
||||
#endif
|
||||
int NowBattlerFd;
|
||||
@ -24,21 +24,21 @@ int BATTLE_MpDown( int charaindex, int down )
|
||||
#else
|
||||
{
|
||||
int mp, battleindex;
|
||||
// 爵 反覆谛爵井}???爵井
|
||||
// 戦闘は対人戦か、???戦か
|
||||
battleindex = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEINDEX );
|
||||
|
||||
if( BATTLE_CHECKINDEX( battleindex ) == FALSE )return TRUE;
|
||||
// 覆谛爵元扎卅井匀凶日??
|
||||
// 対人戦じゃなかったら??
|
||||
if( BattleArray[battleindex].type != BATTLE_TYPE_P_vs_P ){
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// ??毛蛹日六月井"
|
||||
// ??を減らせるか?
|
||||
mp = CHAR_getInt( charaindex, CHAR_MP );
|
||||
if( mp < down ){
|
||||
// 蛹日六卅中及匹窒手仄卅中午允月
|
||||
// 減らせないので何もしないとする
|
||||
CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_NONE );
|
||||
// 戊穴件玉OK及隙烂
|
||||
// コマンドOKの指定
|
||||
CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK );
|
||||
return FALSE;
|
||||
}
|
||||
@ -55,7 +55,7 @@ void BattleCommandDispach( int fd, char *command )
|
||||
int EscapeFree = BATTLE_FLG_FREEDP;
|
||||
int charaindex = CONNECT_getCharaindex(fd);
|
||||
char szBuffer[256]="";
|
||||
#ifdef _FIXWOLF // Syu ADD 修正狼人变身Bug
|
||||
#ifdef _FIXWOLF // Syu ADD 修正狼人变身Bug
|
||||
int i , j , pindex;
|
||||
BATTLE_ENTRY *pEntry;
|
||||
#endif
|
||||
@ -86,10 +86,10 @@ void BattleCommandDispach( int fd, char *command )
|
||||
EscapeFree = 0;
|
||||
if (CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEWATCH )!=TRUE){
|
||||
CHAR_talkToCli( charaindex, -1,
|
||||
"华义大魔王使出定身法,定定定定定定把你定在战斗里。", CHAR_COLORYELLOW );
|
||||
"华义大魔王使出定身法,定定定定定定把你定在战斗里。", CHAR_COLORYELLOW );
|
||||
CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_GUARD );
|
||||
CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK );
|
||||
//sprintf( szBuffer, "Command(%s)(防御)", CHAR_getUseName( charaindex ) );
|
||||
//sprintf( szBuffer, "Command(%s)(防御)", CHAR_getUseName( charaindex ) );
|
||||
endFlg = 1;
|
||||
BATTLE_MpDown( charaindex, 2 );
|
||||
}else{
|
||||
@ -108,7 +108,7 @@ void BattleCommandDispach( int fd, char *command )
|
||||
CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_ESCAPE );
|
||||
|
||||
CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK );
|
||||
//sprintf( szBuffer, "Command(%s)(逃跑)", CHAR_getUseName( charaindex ) );
|
||||
//sprintf( szBuffer, "Command(%s)(逃跑)", CHAR_getUseName( charaindex ) );
|
||||
endFlg = 1;
|
||||
|
||||
BATTLE_MpDown( charaindex, 20 );
|
||||
@ -142,12 +142,12 @@ void BattleCommandDispach( int fd, char *command )
|
||||
CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_BOOMERANG );
|
||||
#ifdef _PETSKILL_BECOMEFOX
|
||||
if( CHAR_getInt( charaindex, CHAR_BASEIMAGENUMBER)==101749
|
||||
|| CHAR_getWorkInt( charaindex, CHAR_WORKFOXROUND ) != -1 ){ //若是变成小狐狸不可以使用回力标
|
||||
|| CHAR_getWorkInt( charaindex, CHAR_WORKFOXROUND ) != -1 ){ //若是变成小狐狸不可以使用回力标
|
||||
CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_NONE );
|
||||
}
|
||||
#endif
|
||||
#ifdef _PETSKILL_BECOMEPIG
|
||||
if( CHAR_getInt( charaindex, CHAR_BECOMEPIG) > -1 ){//变成乌力了
|
||||
if( CHAR_getInt( charaindex, CHAR_BECOMEPIG) > -1 ){//变成乌力了
|
||||
CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_ATTACK );
|
||||
}
|
||||
#endif
|
||||
@ -158,7 +158,7 @@ void BattleCommandDispach( int fd, char *command )
|
||||
CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK );
|
||||
|
||||
CHAR_SETWORKINT_LOW( charaindex, CHAR_WORKBATTLECOM3, 1 );
|
||||
//sprintf( szBuffer, "Command(%s)(战斗)", CHAR_getUseName( charaindex ) );
|
||||
//sprintf( szBuffer, "Command(%s)(战斗)", CHAR_getUseName( charaindex ) );
|
||||
|
||||
endFlg = 1;
|
||||
|
||||
@ -178,7 +178,7 @@ void BattleCommandDispach( int fd, char *command )
|
||||
|
||||
CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK );
|
||||
|
||||
sprintf( szBuffer, "Command(%s)(防御)", CHAR_getUseName( charaindex ) );
|
||||
sprintf( szBuffer, "Command(%s)(防御)", CHAR_getUseName( charaindex ) );
|
||||
endFlg = 1;
|
||||
|
||||
BATTLE_MpDown( charaindex, 2 );
|
||||
@ -191,8 +191,8 @@ void BattleCommandDispach( int fd, char *command )
|
||||
CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_WAIT );
|
||||
|
||||
CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK );
|
||||
// sprintf( szBuffer, "Command(%s)(server托管)", CHAR_getUseName( charaindex ) );
|
||||
//sprintf( szBuffer, "Command(%s)(待机)", CHAR_getUseName( charaindex ) );
|
||||
// sprintf( szBuffer, "Command(%s)(server托管)", CHAR_getUseName( charaindex ) );
|
||||
//sprintf( szBuffer, "Command(%s)(待机)", CHAR_getUseName( charaindex ) );
|
||||
endFlg = 1;
|
||||
|
||||
}else
|
||||
@ -218,7 +218,7 @@ void BattleCommandDispach( int fd, char *command )
|
||||
|
||||
CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK );
|
||||
|
||||
//sprintf( szBuffer, "Command(%s)(捕获)", CHAR_getUseName( charaindex ) );
|
||||
//sprintf( szBuffer, "Command(%s)(捕获)", CHAR_getUseName( charaindex ) );
|
||||
endFlg = 1;
|
||||
|
||||
BATTLE_MpDown( charaindex, 20 );
|
||||
@ -247,7 +247,7 @@ void BattleCommandDispach( int fd, char *command )
|
||||
#ifndef _PET_STANDBY
|
||||
if( iNum >= 0) {
|
||||
if( ! (CHAR_getWorkInt( charaindex, CHAR_WORKSTANDBYPET) & ( 1 << iNum)) ) {
|
||||
//print("\n 改封包!叫出非待机宠!!:%s ", CHAR_getChar( charaindex, CHAR_CDKEY) );
|
||||
//print("\n 改封包!叫出非待机宠!!:%s ", CHAR_getChar( charaindex, CHAR_CDKEY) );
|
||||
iNum = -1;
|
||||
}
|
||||
}
|
||||
@ -257,10 +257,10 @@ void BattleCommandDispach( int fd, char *command )
|
||||
CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM2, iNum );
|
||||
if( iNum < 0 ){
|
||||
CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_PETIN );
|
||||
//sprintf( szBuffer, "Command(%s)(唤回宠物)", CHAR_getUseName( charaindex ) );
|
||||
//sprintf( szBuffer, "Command(%s)(唤回宠物)", CHAR_getUseName( charaindex ) );
|
||||
}else{
|
||||
CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_PETOUT );
|
||||
//sprintf( szBuffer, "Command(%s)(叫出宠物)", CHAR_getUseName( charaindex ) );
|
||||
//sprintf( szBuffer, "Command(%s)(叫出宠物)", CHAR_getUseName( charaindex ) );
|
||||
}
|
||||
|
||||
CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK );
|
||||
@ -288,18 +288,18 @@ void BattleCommandDispach( int fd, char *command )
|
||||
|| checkErrorStatus( petindex)
|
||||
)
|
||||
{
|
||||
//sprintf( szBuffer, "Command(%s)(自动)", CHAR_getUseName( petindex ) );
|
||||
//sprintf( szBuffer, "Command(%s)(自动)", CHAR_getUseName( petindex ) );
|
||||
CHAR_setWorkInt( petindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK );
|
||||
#ifdef _PETSKILLBUG //Add By Syu 2002.0805
|
||||
}else if ((CHAR_getInt(petindex, CHAR_TRANSMIGRATION)<1)
|
||||
&& ( iNum>=CHAR_getInt(petindex, CHAR_SLOT) ) )
|
||||
{
|
||||
//sprintf( szBuffer, "Command(%s)(自动)", CHAR_getUseName( petindex ) );
|
||||
//sprintf( szBuffer, "Command(%s)(自动)", CHAR_getUseName( petindex ) );
|
||||
CHAR_setWorkInt( petindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK );
|
||||
#endif
|
||||
}else{
|
||||
petskillindex = PETSKILL_GetArray( petindex, iNum);
|
||||
#ifdef _FIXWOLF // Syu ADD 修正狼人变身Bug
|
||||
#ifdef _FIXWOLF // Syu ADD 修正狼人变身Bug
|
||||
if( (CHAR_getPetSkill( petindex , iNum )== 600) && (ToNo == -1))
|
||||
{
|
||||
for( j = 0; j < 2; j ++ )
|
||||
@ -320,12 +320,12 @@ void BattleCommandDispach( int fd, char *command )
|
||||
if( petskillindex >= 0
|
||||
&& PETSKILL_Use( petindex, iNum, ToNo, NULL ) == TRUE
|
||||
){
|
||||
//sprintf( szBuffer, "Command(%s)(石版)", CHAR_getUseName( petindex ) );
|
||||
//sprintf( szBuffer, "Command(%s)(石版)", CHAR_getUseName( petindex ) );
|
||||
|
||||
EscapeFree = 0;
|
||||
|
||||
}else{
|
||||
//sprintf( szBuffer, "Command(%s)(自动)", CHAR_getUseName( petindex ) );
|
||||
//sprintf( szBuffer, "Command(%s)(自动)", CHAR_getUseName( petindex ) );
|
||||
CHAR_setWorkInt( petindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK );
|
||||
}
|
||||
}
|
||||
@ -374,7 +374,7 @@ void BattleCommandDispach( int fd, char *command )
|
||||
CHAR_SETWORKINT_LOW( charaindex, CHAR_WORKBATTLECOM3, magicindex );
|
||||
CHAR_SETWORKINT_HIGH( charaindex, CHAR_WORKBATTLECOM3, iNum );
|
||||
CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK );
|
||||
//sprintf( szBuffer, "Command(%s)(咒术)", CHAR_getUseName( charaindex ) );
|
||||
//sprintf( szBuffer, "Command(%s)(咒术)", CHAR_getUseName( charaindex ) );
|
||||
#ifdef _ITEM_ATTSKILLMAGIC
|
||||
}
|
||||
#endif
|
||||
@ -383,7 +383,7 @@ void BattleCommandDispach( int fd, char *command )
|
||||
EscapeFree = 0;
|
||||
CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_WAIT );
|
||||
CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK );
|
||||
//sprintf( szBuffer, "Command(%s)(待机)", CHAR_getUseName( charaindex ) );
|
||||
//sprintf( szBuffer, "Command(%s)(待机)", CHAR_getUseName( charaindex ) );
|
||||
}
|
||||
endFlg = 1;
|
||||
}else
|
||||
@ -412,12 +412,12 @@ void BattleCommandDispach( int fd, char *command )
|
||||
CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_ITEM );
|
||||
CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM3, iNum );
|
||||
CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK );
|
||||
//sprintf( szBuffer, "Command(%s)(道具)", CHAR_getUseName( charaindex ) );
|
||||
//sprintf( szBuffer, "Command(%s)(道具)", CHAR_getUseName( charaindex ) );
|
||||
endFlg = 1;
|
||||
}
|
||||
}else
|
||||
if( strncmp( command, "@", 1 ) == 0 ){
|
||||
//sprintf( szBuffer, "Command(%s)(通用)", CHAR_getUseName( charaindex ) );
|
||||
//sprintf( szBuffer, "Command(%s)(通用)", CHAR_getUseName( charaindex ) );
|
||||
|
||||
CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK );
|
||||
endFlg = 1;
|
||||
@ -426,7 +426,7 @@ void BattleCommandDispach( int fd, char *command )
|
||||
min( 100, CHAR_getInt( charaindex, CHAR_MP ) + 30 ) );
|
||||
|
||||
}else
|
||||
#ifdef _PROFESSION_SKILL // WON ADD 人物职业技能
|
||||
#ifdef _PROFESSION_SKILL // WON ADD 人物职业技能
|
||||
if( strncmp( command, "P", 1 ) == 0 ){
|
||||
int iNum=-1, ToNo=-1;
|
||||
int skillindex=-1;
|
||||
@ -444,16 +444,16 @@ void BattleCommandDispach( int fd, char *command )
|
||||
}
|
||||
|
||||
if( CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE) == BATTLE_CHARMODE_NONE ){
|
||||
// print("\n\n 非法封包(19001)(%s)(%s)\n\n", CHAR_getChar(charaindex, CHAR_CDKEY), CHAR_getChar(charaindex, CHAR_NAME) );
|
||||
// print("\n\n 非法封包(19001)(%s)(%s)\n\n", CHAR_getChar(charaindex, CHAR_CDKEY), CHAR_getChar(charaindex, CHAR_NAME) );
|
||||
#ifdef _PROSKILL_ERR_KICK
|
||||
CONNECT_setCloseRequest( fd , 1 );
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
#ifndef _PROSKILL_OPTIMUM // Robin fix cancel 此处略过职业检查, 改在 PROFESSION_SKILL_Use 中检查
|
||||
// 人物的职业
|
||||
#ifndef _PROSKILL_OPTIMUM // Robin fix cancel 此处略过职业检查, 改在 PROFESSION_SKILL_Use 中检查
|
||||
// 人物的职业
|
||||
char_pskill = CHAR_getInt( charaindex, PROFESSION_CLASS );
|
||||
// 技能的职业
|
||||
// 技能的职业
|
||||
skillindex = PROFESSION_SKILL_GetArray( charaindex, iNum);
|
||||
Pskillid = PROFESSION_SKILL_getskillArray( skillindex);
|
||||
profession_skill = PROFESSION_SKILL_getInt( Pskillid, PROFESSION_SKILL_PROFESSION_CLASS);
|
||||
@ -463,22 +463,22 @@ void BattleCommandDispach( int fd, char *command )
|
||||
if( 1 ) {
|
||||
#endif
|
||||
if( PROFESSION_SKILL_Use( charaindex, iNum, ToNo, NULL ) == 1 ){
|
||||
//sprintf( szBuffer, "Command(%s)(职业技能)", CHAR_getUseName( charaindex ) );
|
||||
//sprintf( szBuffer, "Command(%s)(职业技能)", CHAR_getUseName( charaindex ) );
|
||||
endFlg = 1;
|
||||
}else{
|
||||
// print("\n职业技能失败!!\n");
|
||||
// print("\n职业技能失败!!\n");
|
||||
CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_WAIT );
|
||||
CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK );
|
||||
//sprintf( szBuffer, "Command(%s)(待机)", CHAR_getUseName( charaindex ) );
|
||||
//sprintf( szBuffer, "Command(%s)(待机)", CHAR_getUseName( charaindex ) );
|
||||
#ifdef _PROSKILL_ERR_KICK
|
||||
CONNECT_setCloseRequest( fd , 1 );
|
||||
#endif
|
||||
}
|
||||
}else{
|
||||
// print("\n改封包??职业技能ID不正确:%s:%d:%d \n", CHAR_getChar( charaindex, CHAR_CDKEY), char_pskill, profession_skill);
|
||||
// print("\n改封包??职业技能ID不正确:%s:%d:%d \n", CHAR_getChar( charaindex, CHAR_CDKEY), char_pskill, profession_skill);
|
||||
CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_WAIT );
|
||||
CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK );
|
||||
//sprintf( szBuffer, "Command(%s)(待机)", CHAR_getUseName( charaindex ) );
|
||||
//sprintf( szBuffer, "Command(%s)(待机)", CHAR_getUseName( charaindex ) );
|
||||
#ifdef _PROSKILL_ERR_KICK
|
||||
CONNECT_setCloseRequest_debug( fd , 1 );
|
||||
#endif
|
||||
@ -489,7 +489,7 @@ void BattleCommandDispach( int fd, char *command )
|
||||
#endif
|
||||
|
||||
{
|
||||
//sprintf( szBuffer, "Command(%s)(失败)", CHAR_getUseName( charaindex ) );
|
||||
//sprintf( szBuffer, "Command(%s)(失败)", CHAR_getUseName( charaindex ) );
|
||||
endFlg = 2;
|
||||
}
|
||||
|
||||
@ -532,56 +532,56 @@ void BATTLE_ActSettingSend( int battleindex )
|
||||
pEntry = BattleArray[battleindex].Side[j].Entry;
|
||||
for( i = 0; i < BATTLE_ENTRY_MAX; i ++ ){
|
||||
pindex = pEntry[i].charaindex;
|
||||
// 戊穴件玉 匹五化中凶日
|
||||
// コマンド入力できていたら
|
||||
if( CHAR_getWorkInt( pindex, CHAR_WORKBATTLEMODE )
|
||||
== BATTLE_CHARMODE_C_OK
|
||||
){
|
||||
endBit |= 1 << k; // 申永玄 化月
|
||||
endBit |= 1 << k; // ビット立てる
|
||||
}else
|
||||
// 衬分匀凶日濮覆 井允
|
||||
// 敵だったら絶対動かす
|
||||
if( CHAR_getInt( pindex, CHAR_WHICHTYPE ) == CHAR_TYPEENEMY ||
|
||||
CHAR_getInt( pindex, CHAR_WHICHTYPE ) == CHAR_TYPEPLAYERNPC ||
|
||||
CHAR_getInt( pindex, CHAR_WHICHTYPE ) == CHAR_TYPEPLAYERPETNPC )
|
||||
{
|
||||
endBit |= 1 << k; // 申永玄 化月
|
||||
endBit |= 1 << k; // ビット立てる
|
||||
}
|
||||
k ++;
|
||||
}
|
||||
}
|
||||
sprintf( szBA, "BA|%X|%X|", endBit, BattleArray[battleindex].turn );
|
||||
// print( "%s\n", szBA );
|
||||
//今日卞蝈够伙□皿仄化霜月
|
||||
//さらに全員ループして送る
|
||||
for( j = 0; j < 2; j ++ ){
|
||||
pEntry = BattleArray[battleindex].Side[j].Entry;
|
||||
for( i = 0; i < BATTLE_ENTRY_MAX; i ++ ){
|
||||
pindex = pEntry[i].charaindex;
|
||||
if( CHAR_CHECKINDEX( pindex ) == FALSE )continue;
|
||||
// 辅爵仄凶化及平乓仿卞反霜日卅中
|
||||
// 参戦したてのキャラには送らない
|
||||
if( CHAR_getWorkInt( pindex, CHAR_WORKBATTLEMODE ) == BATTLE_CHARMODE_RESCUE )continue;
|
||||
// 皿伊奶乩□分匀凶日
|
||||
// プレイヤーだったら
|
||||
if( CHAR_getInt( pindex, CHAR_WHICHTYPE ) == CHAR_TYPEPLAYER
|
||||
){ // 戊穴件玉霜月
|
||||
){ // コマンド送る
|
||||
BATTLE_CommandSend( pindex, szBA );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 棋爵仄化中月谛卞手霜月
|
||||
// 観戦している人にも送る
|
||||
pBattle = BattleArray[battleindex].pNext;
|
||||
for( ; pBattle ; pBattle = pBattle->pNext ){
|
||||
|
||||
// 仇及失玉伊旦互恳仄中井民尼永弁
|
||||
// このアドレスが正しいかチェック
|
||||
if( BATTLE_CHECKADDRESS( pBattle ) == FALSE ){
|
||||
//fprint( "err:观战battle address错误(%p)\n", pBattle );
|
||||
//fprint( "err:观战battle address错误(%p)\n", pBattle );
|
||||
break;
|
||||
}
|
||||
// 蝈够卞霜耨
|
||||
// 全員に送信
|
||||
for( i = 0; i < BATTLE_ENTRY_MAX; i ++ ){
|
||||
charaindex = pBattle->Side[0].Entry[i].charaindex;
|
||||
if( CHAR_CHECKINDEX( charaindex ) == FALSE )continue;
|
||||
if( CHAR_getInt( charaindex, CHAR_WHICHTYPE ) != CHAR_TYPEPLAYER )continue;
|
||||
// 戊穴件玉霜月
|
||||
// コマンド送る
|
||||
BATTLE_CommandSend( pindex, szBA );
|
||||
}
|
||||
}
|
||||
@ -603,7 +603,7 @@ BOOL BATTLE_IsHide( int charaindex ){
|
||||
|
||||
//*******************************************************
|
||||
//
|
||||
// 田玄伙及戊穴件玉毛弁仿奶失件玄卞霜月
|
||||
// バトルのコマンドをクライアントに送る
|
||||
//
|
||||
BOOL BATTLE_CommandSend( int charaindex, char *pszCommand)
|
||||
//
|
||||
@ -640,7 +640,7 @@ BOOL BATTLE_MakeCharaString(
|
||||
|
||||
for( j = 0; j < 2; j ++ ){
|
||||
if( j == 1 ){
|
||||
iOffset = SIDE_OFFSET; // 轾仇丹础扔奶玉及桦宁反皿仿旦允月
|
||||
iOffset = SIDE_OFFSET; // 向こう側サイドの場合はプラスする
|
||||
}else{
|
||||
iOffset = 0;
|
||||
}
|
||||
@ -661,22 +661,22 @@ BOOL BATTLE_MakeCharaString(
|
||||
if( CHAR_getWorkInt( charaindex, CHAR_WORKPOISON ) > 0 ){
|
||||
flg |= BC_FLG_POISON;
|
||||
}else
|
||||
#ifdef _MAGIC_WEAKEN // 虚弱
|
||||
#ifdef _MAGIC_WEAKEN // 虚弱
|
||||
if( CHAR_getWorkInt( charaindex, CHAR_WORKWEAKEN ) > 0 ){
|
||||
flg |= BC_FLG_WEAKEN;
|
||||
}else
|
||||
#endif
|
||||
#ifdef _MAGIC_DEEPPOISON // 剧毒
|
||||
#ifdef _MAGIC_DEEPPOISON // 剧毒
|
||||
if( CHAR_getWorkInt( charaindex, CHAR_WORKDEEPPOISON ) > 0 ){
|
||||
flg |= BC_FLG_DEEPPOISON;
|
||||
}else
|
||||
#endif
|
||||
#ifdef _MAGIC_NOCAST // 沉默
|
||||
#ifdef _MAGIC_NOCAST // 沉默
|
||||
if( CHAR_getWorkInt( charaindex, CHAR_WORKNOCAST ) > 0 ){
|
||||
flg |= BC_FLG_NOCAST;
|
||||
}else
|
||||
#endif
|
||||
#ifdef _MAGIC_BARRIER // 魔障
|
||||
#ifdef _MAGIC_BARRIER // 魔障
|
||||
if( CHAR_getWorkInt( charaindex, CHAR_WORKBARRIER ) > 0 ){
|
||||
flg |= BC_FLG_BARRIER;
|
||||
}else
|
||||
@ -705,63 +705,63 @@ BOOL BATTLE_MakeCharaString(
|
||||
if( BATTLE_IsHide( charaindex ) == TRUE ){
|
||||
flg |= BC_FLG_HIDE;
|
||||
}
|
||||
#ifdef _PET_SKILL_SARS // WON ADD 毒煞蔓延
|
||||
#ifdef _PET_SKILL_SARS // WON ADD 毒煞蔓延
|
||||
if( CHAR_getWorkInt( charaindex, CHAR_WORKSARS ) > 0 ){
|
||||
flg |= BC_FLG_SARS;
|
||||
}
|
||||
#endif
|
||||
#ifdef _PROFESSION_SKILL // WON ADD 人物职业技能
|
||||
#ifdef _PROFESSION_SKILL // WON ADD 人物职业技能
|
||||
if( CHAR_getWorkInt( charaindex, CHAR_WORKDIZZY ) > 0 ){
|
||||
flg |= BC_FLG_DIZZY; // 晕眩
|
||||
flg |= BC_FLG_DIZZY; // 晕眩
|
||||
}
|
||||
if( CHAR_getWorkInt( charaindex, CHAR_WORKENTWINE ) > 0 ){
|
||||
flg |= BC_FLG_ENTWINE; // 树根缠绕
|
||||
flg |= BC_FLG_ENTWINE; // 树根缠绕
|
||||
}
|
||||
if( CHAR_getWorkInt( charaindex, CHAR_WORKDRAGNET ) > 0 ){
|
||||
flg |= BC_FLG_DRAGNET; // 天罗地网
|
||||
flg |= BC_FLG_DRAGNET; // 天罗地网
|
||||
}
|
||||
if( CHAR_getWorkInt( charaindex, CHAR_WORKICECRACK ) > 0 ){
|
||||
// flg |= BC_FLG_ICECRACK; // 冰爆术
|
||||
// flg |= BC_FLG_ICECRACK; // 冰爆术
|
||||
}
|
||||
if( CHAR_getWorkInt( charaindex, CHAR_WORKOBLIVION ) > 0 ){
|
||||
flg |= BC_FLG_OBLIVION; // 遗忘
|
||||
flg |= BC_FLG_OBLIVION; // 遗忘
|
||||
}
|
||||
if( CHAR_getWorkInt( charaindex, CHAR_WORKICEARROW ) > 0 ){
|
||||
flg |= BC_FLG_ICEARROW; // 冰箭
|
||||
flg |= BC_FLG_ICEARROW; // 冰箭
|
||||
}
|
||||
if( CHAR_getWorkInt( charaindex, CHAR_WORKBLOODWORMS ) > 0 ){
|
||||
flg |= BC_FLG_BLOODWORMS; // 嗜血蛊
|
||||
flg |= BC_FLG_BLOODWORMS; // 嗜血蛊
|
||||
}
|
||||
if( CHAR_getWorkInt( charaindex, CHAR_WORKSIGN ) > 0 ){
|
||||
flg |= BC_FLG_SIGN; // 一针见血
|
||||
flg |= BC_FLG_SIGN; // 一针见血
|
||||
}
|
||||
if( CHAR_getWorkInt( charaindex, CHAR_WORKINSTIGATE ) > 0 ){
|
||||
flg |= BC_FLG_CARY; // 挑拨
|
||||
flg |= BC_FLG_CARY; // 挑拨
|
||||
}
|
||||
if( CHAR_getWorkInt( charaindex, CHAR_WORK_F_ENCLOSE ) > 0 ){
|
||||
flg |= BC_FLG_F_ENCLOSE; // 火附体
|
||||
flg |= BC_FLG_F_ENCLOSE; // 火附体
|
||||
}
|
||||
if( CHAR_getWorkInt( charaindex, CHAR_WORK_I_ENCLOSE ) > 0 ){
|
||||
flg |= BC_FLG_I_ENCLOSE; // 冰附体
|
||||
flg |= BC_FLG_I_ENCLOSE; // 冰附体
|
||||
}
|
||||
if( CHAR_getWorkInt( charaindex, CHAR_WORK_T_ENCLOSE ) > 0 ){
|
||||
flg |= BC_FLG_T_ENCLOSE; // 雷附体
|
||||
flg |= BC_FLG_T_ENCLOSE; // 雷附体
|
||||
}
|
||||
#endif
|
||||
#ifdef _PROFESSION_ADDSKILL
|
||||
if( CHAR_getWorkInt( charaindex, CHAR_WORKANNEX ) > 0 ){
|
||||
flg |= BC_FLG_T_ENCLOSE; // 附身术
|
||||
flg |= BC_FLG_T_ENCLOSE; // 附身术
|
||||
}
|
||||
if( CHAR_getWorkInt( charaindex, CHAR_WORKWATER ) > 0 ){
|
||||
flg |= BC_FLG_WATER; // 水附体
|
||||
flg |= BC_FLG_WATER; // 水附体
|
||||
}
|
||||
if( CHAR_getWorkInt( charaindex, CHAR_WORKFEAR ) > 0 ){
|
||||
flg |= BC_FLG_FEAR; // 恐惧
|
||||
flg |= BC_FLG_FEAR; // 恐惧
|
||||
}
|
||||
#endif
|
||||
#ifdef _PETSKILL_LER
|
||||
if(CHAR_getWorkInt(charaindex,CHAR_WORK_RELIFE) > 0){
|
||||
flg |= BC_FLG_CHANGE; // 雷尔变身
|
||||
flg |= BC_FLG_CHANGE; // 雷尔变身
|
||||
CHAR_setWorkInt(charaindex,CHAR_WORK_RELIFE,0);
|
||||
}
|
||||
#endif
|
||||
@ -785,13 +785,13 @@ BOOL BATTLE_MakeCharaString(
|
||||
}else {
|
||||
if( CHAR_getWorkInt( charaindex, CHAR_WORKPETFALL ) == 1 ){
|
||||
rideflg = -1;
|
||||
#ifdef _PETSKILL_BECOMEFOX // 若中了媚惑术而落马时将讯息传给 Client
|
||||
#ifdef _PETSKILL_BECOMEFOX // 若中了媚惑术而落马时将讯息传给 Client
|
||||
if( CHAR_getWorkInt( charaindex, CHAR_WORKFOXROUND ) != -1 )
|
||||
rideflg = -2; //client用来判断显示落马的文字 (对应的client变数为p_party[ BattleMyNo ]->onRide)
|
||||
rideflg = -2; //client用来判断显示落马的文字 (对应的client变数为p_party[ BattleMyNo ]->onRide)
|
||||
#endif
|
||||
#ifdef _PETSKILL_BECOMEPIG // 若中了乌力化而落马时将讯息传给 Client
|
||||
if( CHAR_getInt( charaindex, CHAR_BECOMEPIG) > 120 )//变成乌力了
|
||||
rideflg = -3; //client用来判断显示落马的文字 (对应的client变数为p_party[ BattleMyNo ]->onRide)
|
||||
#ifdef _PETSKILL_BECOMEPIG // 若中了乌力化而落马时将讯息传给 Client
|
||||
if( CHAR_getInt( charaindex, CHAR_BECOMEPIG) > 120 )//变成乌力了
|
||||
rideflg = -3; //client用来判断显示落马的文字 (对应的client变数为p_party[ BattleMyNo ]->onRide)
|
||||
#endif
|
||||
CHAR_setWorkInt( charaindex, CHAR_WORKPETFALL, 0 );
|
||||
}
|
||||
@ -819,7 +819,7 @@ BOOL BATTLE_MakeCharaString(
|
||||
petmaxhp
|
||||
);
|
||||
STRCPY_TAIL( pszTop, pszLast, szBuffer );
|
||||
if( pszTop >= pszLast )return FALSE;// 译尹凶日撩
|
||||
if( pszTop >= pszLast )return FALSE;// 超えたら失敗
|
||||
}
|
||||
}
|
||||
|
||||
@ -827,8 +827,8 @@ BOOL BATTLE_MakeCharaString(
|
||||
}
|
||||
|
||||
void BATTLE_BpSendToWatch(
|
||||
BATTLE *pBattle, // 棋爵田玄伙正旦弁及禾奶件正
|
||||
char *pszBcString // BC 侬
|
||||
BATTLE *pBattle, // 観戦バトルタスクのポインタ
|
||||
char *pszBcString // BC文字列
|
||||
)
|
||||
{
|
||||
|
||||
@ -837,13 +837,13 @@ void BATTLE_BpSendToWatch(
|
||||
|
||||
// for( ; pBattle ; pBattle = pBattle->pNext ){
|
||||
if( pBattle == NULL )return;
|
||||
// 仇及失玉伊旦互恳仄中井民尼永弁
|
||||
// このアドレスが正しいかチェック
|
||||
if( BATTLE_CHECKADDRESS( pBattle ) == FALSE ){
|
||||
//fprint( "err:观战battle address错误(%p)\n", pBattle );
|
||||
//fprint( "err:观战battle address错误(%p)\n", pBattle );
|
||||
return;
|
||||
}
|
||||
|
||||
// 蝈够卞霜耨
|
||||
// 全員に送信
|
||||
for( i = 0; i < BATTLE_ENTRY_MAX; i ++ ){
|
||||
charaindex = pBattle->Side[0].Entry[i].charaindex;
|
||||
if( CHAR_CHECKINDEX( charaindex ) == FALSE )continue;
|
||||
@ -851,16 +851,16 @@ void BATTLE_BpSendToWatch(
|
||||
!= CHAR_TYPEPLAYER ) continue;
|
||||
if( CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE )
|
||||
== BATTLE_CHARMODE_WATCHINIT){
|
||||
flg |= BP_FLG_JOIN; // 蕙筋辅笛
|
||||
flg |= BP_FLG_JOIN; // 新規参加
|
||||
}
|
||||
flg |= BP_FLG_PLAYER_MENU_OFF; // 皿伊奶乩□丢瓦亘□请今卅中
|
||||
// 皿伊奶乩□ 寞霜月
|
||||
flg |= BP_FLG_PLAYER_MENU_OFF; // プレイヤーメニュー出さない
|
||||
// プレイヤー番号送る
|
||||
sprintf( szBp, "BP|%X|%X|%X", 20, flg, 0 );
|
||||
BATTLE_CommandSend( charaindex, szBp );
|
||||
// 蝈够隋骚树 霜月
|
||||
// 全員共通情報送る
|
||||
BATTLE_CommandSend( charaindex, pszBcString );
|
||||
}
|
||||
// 戊穴件玉谨切尺
|
||||
// コマンド待ちへ
|
||||
pBattle->mode = BATTLE_MODE_WATCHPRE;
|
||||
// }
|
||||
}
|
||||
@ -891,7 +891,7 @@ void BATTLE_CharSendAll( int battleindex )
|
||||
}
|
||||
if( CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE )
|
||||
== BATTLE_CHARMODE_RESCUE){
|
||||
flg |= BP_FLG_JOIN; // 辅爵
|
||||
flg |= BP_FLG_JOIN; // 参戦
|
||||
}
|
||||
At_SoubiIndex = CHAR_getItemIndex( charaindex, CHAR_ARM );
|
||||
if( ITEM_CHECKINDEX( At_SoubiIndex ) == FALSE ){
|
||||
@ -910,17 +910,12 @@ void BATTLE_CharSendAll( int battleindex )
|
||||
|
||||
#ifdef _PETSKILL_DAMAGETOHP
|
||||
{
|
||||
/*
|
||||
让开,让开~~~~~~~
|
||||
╭══╮
|
||||
╭╯ΘΘ║
|
||||
╰⊙═⊙╯我来给你送月饼了
|
||||
*/
|
||||
|
||||
char msg[32]={0};
|
||||
//print("\n宠物id:%d",CHAR_getInt( pindex, CHAR_PETID));
|
||||
//print("\n宠物名:%s",CHAR_getChar( pindex, CHAR_NAME));
|
||||
//if( CHAR_getInt( pindex, CHAR_PETID) == 777 ){//宠物ID 水双头狼
|
||||
// || CHAR_getInt( pindex, CHAR_PETID) == 146 ) //火双头狼
|
||||
//print("\n宠物id:%d",CHAR_getInt( pindex, CHAR_PETID));
|
||||
//print("\n宠物名:%s",CHAR_getChar( pindex, CHAR_NAME));
|
||||
//if( CHAR_getInt( pindex, CHAR_PETID) == 777 ){//宠物ID 水双头狼
|
||||
// || CHAR_getInt( pindex, CHAR_PETID) == 146 ) //火双头狼
|
||||
// && CHAR_getInt( pindex, CHAR_HP) ){
|
||||
sprintf( msg, "o%d", pet );
|
||||
CHAR_sendStatusString( charaindex, msg );
|
||||
@ -929,9 +924,9 @@ void BATTLE_CharSendAll( int battleindex )
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef _PETSKILL_BECOMEFOX // 限制中了媚惑术的宠物的技能
|
||||
#ifdef _PETSKILL_BECOMEFOX // 限制中了媚惑术的宠物的技能
|
||||
//if( CHAR_getInt( pindex, CHAR_BASEIMAGENUMBER) == 101749 ){
|
||||
if( CHAR_getWorkInt( pindex, CHAR_WORKFOXROUND ) != -1 ){ //若是变成小狐狸
|
||||
if( CHAR_getWorkInt( pindex, CHAR_WORKFOXROUND ) != -1 ){ //若是变成小狐狸
|
||||
char msg[32]={0};
|
||||
sprintf( msg, "a%d", pet );
|
||||
CHAR_sendStatusString( charaindex, msg );
|
||||
@ -974,9 +969,9 @@ void BATTLE_CharSendAll( int battleindex )
|
||||
}
|
||||
pBattle = BattleArray[battleindex].pNext;
|
||||
for( ; pBattle ; pBattle = pBattle->pNext ){
|
||||
// 仇及失玉伊旦互恳仄中井民尼永弁
|
||||
// このアドレスが正しいかチェック
|
||||
if( BATTLE_CHECKADDRESS( pBattle ) == FALSE ){
|
||||
//fprint( "err:观战battle address错误(%p)\n", pBattle );
|
||||
//fprint( "err:观战battle address错误(%p)\n", pBattle );
|
||||
break;
|
||||
}
|
||||
|
||||
@ -1011,7 +1006,7 @@ void BattleEncountOut( int charaindex)
|
||||
pmode = CHAR_getWorkInt( pindex, CHAR_WORKBATTLEMODE );
|
||||
if( pmode > 0 && pmode != BATTLE_CHARMODE_FINAL ){
|
||||
BATTLE_RescueParentTry( charaindex, pindex );
|
||||
// print( "较慢参加战斗(%s)\n", CHAR_getUseName( charaindex ) );
|
||||
// print( "较慢参加战斗(%s)\n", CHAR_getUseName( charaindex ) );
|
||||
}
|
||||
}
|
||||
|
||||
@ -1020,38 +1015,38 @@ void BattleEncountOut( int charaindex)
|
||||
|
||||
//**************************************************
|
||||
//
|
||||
// 犯白巧伙玄及戊穴件玉毛 木月矢永玄迕
|
||||
// デフォルトのコマンドを入れるペット用
|
||||
//
|
||||
BOOL BATTLE_PetDefaultCommand( int petindex )
|
||||
//
|
||||
//**************************************************
|
||||
{
|
||||
if( CHAR_CHECKINDEX( petindex ) == FALSE )return FALSE;
|
||||
// 锹澎及隙烂
|
||||
// 相手の指定
|
||||
CHAR_setWorkInt( petindex, CHAR_WORKBATTLECOM2, -1 );
|
||||
// 骚橘 猾及隙烂
|
||||
// 通常攻撃の指定
|
||||
CHAR_setWorkInt( petindex, CHAR_WORKBATTLECOM1, BATTLE_COM_ATTACK );
|
||||
// 戊穴件玉OK及隙烂
|
||||
// コマンドOKの指定
|
||||
CHAR_setWorkInt( petindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK );
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// Robin fix 检查石化昏睡不可战斗
|
||||
// Robin fix 检查石化昏睡不可战斗
|
||||
int checkErrorStatus( int charaindex)
|
||||
{
|
||||
//if( BATTLE_CanMoveCheck( charaindex) == FALSE) {
|
||||
|
||||
if(
|
||||
CHAR_getWorkInt( charaindex, CHAR_WORKPARALYSIS ) > 0 // 麻痹
|
||||
|| CHAR_getWorkInt( charaindex, CHAR_WORKSTONE ) > 0 // 石化
|
||||
|| CHAR_getWorkInt( charaindex, CHAR_WORKSLEEP ) > 0 // 睡眠
|
||||
//|| CHAR_getWorkInt( charaindex, CHAR_WORKBARRIER ) > 0 // 魔障
|
||||
|| CHAR_getWorkInt( charaindex, CHAR_WORKDIZZY ) > 0 // 晕眩
|
||||
|| CHAR_getWorkInt( charaindex, CHAR_WORKDRAGNET ) > 0 // 天罗地网
|
||||
//|| CHAR_getWorkInt( charaindex, CHAR_WORK_T_ENCLOSE ) > 0 // 雷附体
|
||||
CHAR_getWorkInt( charaindex, CHAR_WORKPARALYSIS ) > 0 // 麻痹
|
||||
|| CHAR_getWorkInt( charaindex, CHAR_WORKSTONE ) > 0 // 石化
|
||||
|| CHAR_getWorkInt( charaindex, CHAR_WORKSLEEP ) > 0 // 睡眠
|
||||
//|| CHAR_getWorkInt( charaindex, CHAR_WORKBARRIER ) > 0 // 魔障
|
||||
|| CHAR_getWorkInt( charaindex, CHAR_WORKDIZZY ) > 0 // 晕眩
|
||||
|| CHAR_getWorkInt( charaindex, CHAR_WORKDRAGNET ) > 0 // 天罗地网
|
||||
//|| CHAR_getWorkInt( charaindex, CHAR_WORK_T_ENCLOSE ) > 0 // 雷附体
|
||||
#ifdef _PROFESSION_ADDSKILL
|
||||
// || CHAR_getWorkInt( charaindex, CHAR_DOOMTIME ) > 0 //世界末日集气
|
||||
// || CHAR_getWorkInt( charaindex, CHAR_DOOMTIME ) > 0 //世界末日集气
|
||||
#endif
|
||||
)
|
||||
{
|
||||
@ -1062,7 +1057,7 @@ int checkErrorStatus( int charaindex)
|
||||
// else
|
||||
// strcpysafe( cdkey,sizeof(cdkey), CHAR_getChar( charaindex, CHAR_OWNERCDKEY) );
|
||||
|
||||
// print("\n 改封包!不可战斗的状态!!:%s ", cdkey );
|
||||
// print("\n 改封包!不可战斗的状态!!:%s ", cdkey );
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -27,12 +27,12 @@ int BATTLE_ItemUseDelete(
|
||||
// LogItem(
|
||||
// CHAR_getChar( charaindex, CHAR_NAME ),
|
||||
// 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名称
|
||||
// itemindex,
|
||||
//#else
|
||||
// ITEM_getInt( itemindex, ITEM_ID ),
|
||||
//#endif
|
||||
// "BattleUse(战斗中使用掉的道具)",
|
||||
// "BattleUse(战斗中使用掉的道具)",
|
||||
// CHAR_getInt( charaindex,CHAR_FLOOR),
|
||||
// CHAR_getInt( charaindex,CHAR_X ),
|
||||
// CHAR_getInt( charaindex,CHAR_Y ),
|
||||
@ -59,7 +59,7 @@ void ITEM_useImprecate( int charaindex, int toNo, int haveitemindex )
|
||||
int intfun;
|
||||
};
|
||||
struct tagImprecate ImList[3] ={
|
||||
{"咒",BD_KIND_CURSE},{"恩",BD_KIND_BESTOW},{"祝",BD_KIND_WISHES} };
|
||||
{"咒",BD_KIND_CURSE},{"恩",BD_KIND_BESTOW},{"祝",BD_KIND_WISHES} };
|
||||
|
||||
if( !CHAR_CHECKINDEX( charaindex) ) return;
|
||||
battleindex = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEINDEX );
|
||||
@ -122,7 +122,7 @@ void ITEM_useMRecovery_Battle( int charaindex, int toNo, int haveitemindex )
|
||||
turn = atoi( buf1);
|
||||
if( getStringFromIndexWithDelim( arg, ":", 1, buf1, sizeof(buf1)) ==FALSE ) return;
|
||||
|
||||
if( strstr( buf1, "全" ) != NULL ){
|
||||
if( strstr( buf1, "全" ) != NULL ){
|
||||
}else{
|
||||
}
|
||||
|
||||
@ -152,19 +152,19 @@ void ITEM_useMRecovery_Battle( int charaindex, int toNo, int haveitemindex )
|
||||
|| floor == 2005){
|
||||
int battleindex = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEINDEX );
|
||||
BATTLE_NoAction( battleindex, BATTLE_Index2No( battleindex, charaindex) );
|
||||
CHAR_talkToCli(charaindex,-1,"此地图禁止使用军火(全体多次镜光守)",CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli(charaindex,-1,"此地图禁止使用军火(全体多次镜光守)",CHAR_COLORYELLOW);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
#ifdef _PREVENT_TEAMATTACK //光镜守..不得使用敌方
|
||||
#ifdef _PREVENT_TEAMATTACK //光镜守..不得使用敌方
|
||||
int battleindex = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEINDEX );
|
||||
if( CHAR_getInt( charaindex, CHAR_WHICHTYPE ) == CHAR_TYPEPLAYER
|
||||
//&& BattleArray[battleindex].type != BATTLE_TYPE_P_vs_P
|
||||
){
|
||||
if( BATTLE_CheckSameSide( charaindex, toNo) == 0 ){//不同边
|
||||
if( BATTLE_CheckSameSide( charaindex, toNo) == 0 ){//不同边
|
||||
int battleindex = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEINDEX );
|
||||
BATTLE_NoAction( battleindex, BATTLE_Index2No( battleindex, charaindex) );
|
||||
CHAR_talkToCli( charaindex, -1, "光镜守..不得施予非玩家敌方。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( charaindex, -1, "光镜守..不得施予非玩家敌方。", CHAR_COLORYELLOW);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -189,12 +189,12 @@ void ITEM_useMRecovery_Battle( int charaindex, int toNo, int haveitemindex )
|
||||
// LogItem(
|
||||
// CHAR_getChar( charaindex, CHAR_NAME ),
|
||||
// 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名称
|
||||
// itemindex,
|
||||
//#else
|
||||
// ITEM_getInt( itemindex, ITEM_ID ),
|
||||
//#endif
|
||||
// "BattleUse(战斗中使用掉的道具)",
|
||||
// "BattleUse(战斗中使用掉的道具)",
|
||||
// CHAR_getInt( charaindex,CHAR_FLOOR),
|
||||
// CHAR_getInt( charaindex,CHAR_X ),
|
||||
// CHAR_getInt( charaindex,CHAR_Y ),
|
||||
@ -237,12 +237,12 @@ void ITEM_useMagic_Battle( int charaindex, int toNo, int haveitemindex )
|
||||
// LogItem(
|
||||
// CHAR_getChar( charaindex, CHAR_NAME ),
|
||||
// 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名称
|
||||
// itemindex,
|
||||
//#else
|
||||
// ITEM_getInt( itemindex, ITEM_ID ),
|
||||
//#endif
|
||||
// "BattleUse(战斗中使用掉的道具)",
|
||||
// "BattleUse(战斗中使用掉的道具)",
|
||||
// CHAR_getInt( charaindex,CHAR_FLOOR),
|
||||
// CHAR_getInt( charaindex,CHAR_X ),
|
||||
// CHAR_getInt( charaindex,CHAR_Y ),
|
||||
@ -264,19 +264,19 @@ void ITEM_useRecovery_Battle( int charaindex, int toNo, int haveitemindex )
|
||||
itemindex = CHAR_getItemIndex( charaindex, haveitemindex);
|
||||
if(!ITEM_CHECKINDEX(itemindex)) return;
|
||||
arg = ITEM_getChar(itemindex, ITEM_ARGUMENT );
|
||||
if( (p = strstr( arg, "体" )) != NULL )
|
||||
if( (p = strstr( arg, "体" )) != NULL )
|
||||
{
|
||||
kind = BD_KIND_HP;
|
||||
}
|
||||
else if( (p = strstr( arg, "气" )) != NULL )
|
||||
else if( (p = strstr( arg, "气" )) != NULL )
|
||||
{
|
||||
kind = BD_KIND_MP;
|
||||
}
|
||||
else
|
||||
#ifdef _ITEM_UNBECOMEPIG
|
||||
if( (p = strstr( arg, "解猪" )) != NULL ){
|
||||
if( (p = strstr( arg, "解猪" )) != NULL ){
|
||||
kind = BD_KIND_UNBECOMEPIG;
|
||||
HealedEffect = 100608; //特效编号
|
||||
HealedEffect = 100608; //特效编号
|
||||
}
|
||||
else
|
||||
#endif
|
||||
@ -289,7 +289,7 @@ void ITEM_useRecovery_Battle( int charaindex, int toNo, int haveitemindex )
|
||||
#ifdef _ITEM_PROPERTY
|
||||
if( (p = strstr( arg, "PROPERTY" )) != NULL ){
|
||||
kind = BD_KIND_PROPERTY;
|
||||
HealedEffect = 100608; //特效编号
|
||||
HealedEffect = 100608; //特效编号
|
||||
if( strstr( arg, "+" ) )
|
||||
power = 1;
|
||||
else if( strstr( arg, "-" ) )
|
||||
@ -328,12 +328,12 @@ void ITEM_useRecovery_Battle( int charaindex, int toNo, int haveitemindex )
|
||||
// LogItem(
|
||||
// CHAR_getChar( charaindex, CHAR_NAME ),
|
||||
// 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名称
|
||||
// itemindex,
|
||||
//#else
|
||||
// ITEM_getInt( itemindex, ITEM_ID ),
|
||||
//#endif
|
||||
// "BattleUse(战斗中使用掉的道具)",
|
||||
// "BattleUse(战斗中使用掉的道具)",
|
||||
// CHAR_getInt( charaindex,CHAR_FLOOR),
|
||||
// CHAR_getInt( charaindex,CHAR_X ),
|
||||
// CHAR_getInt( charaindex,CHAR_Y ),
|
||||
@ -355,7 +355,7 @@ void ITEM_useStatusChange_Battle(
|
||||
int ReceveEffect;
|
||||
char *pszP = NULL, *arg;
|
||||
char szTurn[] = "turn";
|
||||
char szSuccess[] = "成";
|
||||
char szSuccess[] = "成";
|
||||
|
||||
itemindex = CHAR_getItemIndex( charaindex, haveitemindex);
|
||||
if(!ITEM_CHECKINDEX(itemindex)) return;
|
||||
@ -394,28 +394,28 @@ void ITEM_useStatusChange_Battle(
|
||||
}
|
||||
|
||||
void ITEM_useStatusRecovery_Battle(
|
||||
int charaindex, // 银匀凶谛及奶件犯永弁旦
|
||||
int toNo, // 银歹木月谛及 寞
|
||||
int haveitemindex // 银丹谛及失奶 丞及 寞
|
||||
int charaindex, // 使った人のインデックス
|
||||
int toNo, // 使われる人の番号
|
||||
int haveitemindex // 使う人のアイテムの欄番号
|
||||
){
|
||||
int i;
|
||||
int battleindex, attackNo,itemindex, status = -1;
|
||||
int ReceveEffect;
|
||||
char *pszP = NULL, *arg;
|
||||
|
||||
// 失奶 丞互丐月井升丹井
|
||||
// アイテムがあるかどうか
|
||||
itemindex = CHAR_getItemIndex( charaindex, haveitemindex);
|
||||
if(!ITEM_CHECKINDEX(itemindex)) return;
|
||||
|
||||
// 由仿丢□正毛潸
|
||||
// パラメータを取得
|
||||
arg = ITEM_getChar(itemindex, ITEM_ARGUMENT );
|
||||
|
||||
pszP = arg;
|
||||
// 躲绊毛潸
|
||||
// 効果を取得
|
||||
for( ;status == -1 && pszP[0] != 0; pszP++ ){
|
||||
// 蝈莒手丐月及匹ㄟ井日腹绸
|
||||
// 全快もあるので0から検索
|
||||
for( i = 0; i < BATTLE_ST_END; i ++ ){
|
||||
// 躲绊疋永正伉井"
|
||||
// 効果ピッタリか?
|
||||
if( strncmp( pszP, aszStatus[i], 2 ) == 0 ){
|
||||
status = i;
|
||||
pszP +=2;
|
||||
@ -423,21 +423,21 @@ void ITEM_useStatusRecovery_Battle(
|
||||
}
|
||||
}
|
||||
}
|
||||
// 躲绊卅中及匹撩
|
||||
// 効果ないので失敗
|
||||
if( status == -1 ) return ;
|
||||
|
||||
//------- 仇仇井日荚汊质 -----------
|
||||
//------- ここから回復処理 -----------
|
||||
battleindex = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEINDEX );
|
||||
|
||||
attackNo = BATTLE_Index2No( battleindex, charaindex );
|
||||
|
||||
ReceveEffect = SPR_tyusya; // 月午五反仇木
|
||||
ReceveEffect = SPR_tyusya; // 直るときはこれ
|
||||
|
||||
// 蝈够
|
||||
// 全員
|
||||
BATTLE_MultiStatusRecovery( battleindex, attackNo, toNo,
|
||||
status, SPR_item3, ReceveEffect );
|
||||
|
||||
// 爵 卞失奶 丞互壅尹凶桦宁及隋骚质
|
||||
// 戦闘中にアイテムが消えた場合の共通処理
|
||||
BATTLE_ItemUseDelete( charaindex, haveitemindex );
|
||||
|
||||
}
|
||||
@ -501,13 +501,13 @@ void ITEM_useMagicDef_Battle(
|
||||
|
||||
|
||||
//--------------------------------------------------------------
|
||||
// 由仿丢□正 凳失奶 丞毛银匀凶桦宁及质
|
||||
// パラメータ変更アイテムを使った場合の処理
|
||||
//--------------------------------------------------------------
|
||||
// 爵 及桦宁
|
||||
// 戦闘中の場合
|
||||
void ITEM_useParamChange_Battle(
|
||||
int charaindex, // 银匀凶谛及奶件犯永弁旦
|
||||
int toNo, // 银歹木月谛及 寞
|
||||
int haveitemindex // 银丹谛及失奶 丞及 寞
|
||||
int charaindex, // 使った人のインデックス
|
||||
int toNo, // 使われる人の番号
|
||||
int haveitemindex // 使う人のアイテムの欄番号
|
||||
)
|
||||
{
|
||||
int i;
|
||||
@ -516,18 +516,18 @@ void ITEM_useParamChange_Battle(
|
||||
int kind = -1;
|
||||
char *pszP = NULL, *arg;
|
||||
|
||||
// 失奶 丞互丐月井升丹井
|
||||
// アイテムがあるかどうか
|
||||
itemindex = CHAR_getItemIndex( charaindex, haveitemindex);
|
||||
if(!ITEM_CHECKINDEX(itemindex)) return;
|
||||
|
||||
// 由仿丢□正毛潸
|
||||
// パラメータを取得
|
||||
arg = ITEM_getChar(itemindex, ITEM_ARGUMENT );
|
||||
|
||||
pszP = arg;
|
||||
// 躲绊毛潸
|
||||
// 効果を取得
|
||||
for( ;kind == -1 && pszP[0] != 0; pszP++ ){
|
||||
for( i = 1; i < BATTLE_MD_END; i ++ ){
|
||||
// 躲绊疋永正伉井"
|
||||
// 効果ピッタリか?
|
||||
if( strncmp( pszP, aszParamChange[i], 2 ) == 0 ){
|
||||
kind = i;
|
||||
pszP +=2;
|
||||
@ -535,30 +535,30 @@ void ITEM_useParamChange_Battle(
|
||||
}
|
||||
}
|
||||
}
|
||||
// 躲绊卅中及匹撩
|
||||
// 効果ないので失敗
|
||||
if( kind == -1 ) return ;
|
||||
|
||||
|
||||
if( strstr( pszP, "%" ) ){ // 仇及桦宁反⊙煌遥
|
||||
if( strstr( pszP, "%" ) ){ // この場合は%計算
|
||||
par = 1;
|
||||
}
|
||||
|
||||
if( sscanf( pszP, "%d", &pow ) != 1 ){
|
||||
// 窒禾奶件玄丐仆月井
|
||||
// 何ポイントあげるか
|
||||
pow = 30;
|
||||
}
|
||||
|
||||
//------- 仇仇井日质 -----------
|
||||
//------- ここから処理 -----------
|
||||
battleindex = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEINDEX );
|
||||
|
||||
attackNo = BATTLE_Index2No( battleindex, charaindex );
|
||||
|
||||
// 蝈够
|
||||
// 全員
|
||||
BATTLE_MultiParamChange( battleindex, attackNo, toNo,
|
||||
kind, pow, par, SPR_item3, SPR_hoshi );
|
||||
|
||||
|
||||
// 爵 卞失奶 丞互壅尹凶桦宁及隋骚质
|
||||
// 戦闘中にアイテムが消えた場合の共通処理
|
||||
BATTLE_ItemUseDelete( charaindex, haveitemindex );
|
||||
|
||||
|
||||
@ -570,64 +570,64 @@ void ITEM_useParamChange_Battle(
|
||||
|
||||
|
||||
//--------------------------------------------------------------
|
||||
// 白奴□伙玉箪岭 凳失奶 丞毛银匀凶桦宁及质
|
||||
// フィールド属性変更アイテムを使った場合の処理
|
||||
//--------------------------------------------------------------
|
||||
// 爵 及桦宁
|
||||
// 戦闘中の場合
|
||||
void ITEM_useFieldChange_Battle(
|
||||
int charaindex, // 银匀凶谛及奶件犯永弁旦
|
||||
int toNo, // 银歹木月谛及 寞
|
||||
int haveitemindex // 银丹谛及失奶 丞及 寞
|
||||
int charaindex, // 使った人のインデックス
|
||||
int toNo, // 使われる人の番号
|
||||
int haveitemindex // 使う人のアイテムの欄番号
|
||||
)
|
||||
{
|
||||
int itemindex;
|
||||
char *pArg;
|
||||
|
||||
// 失奶 丞互丐月井升丹井
|
||||
// アイテムがあるかどうか
|
||||
itemindex = CHAR_getItemIndex( charaindex, haveitemindex);
|
||||
if(!ITEM_CHECKINDEX(itemindex)) return;
|
||||
|
||||
//------- 仇仇井日质 -----------
|
||||
// 由仿丢□正毛潸
|
||||
//------- ここから処理 -----------
|
||||
// パラメータを取得
|
||||
pArg = ITEM_getChar(itemindex, ITEM_ARGUMENT );
|
||||
|
||||
// 由仿丢□正 中及匹撩
|
||||
// パラメータ無いので失敗
|
||||
if( pArg == "\0" )return ;
|
||||
|
||||
BATTLE_FieldAttChange( charaindex, pArg );
|
||||
|
||||
// 爵 卞失奶 丞互壅尹凶桦宁及隋骚质
|
||||
// 戦闘中にアイテムが消えた場合の共通処理
|
||||
BATTLE_ItemUseDelete( charaindex, haveitemindex );
|
||||
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------------------
|
||||
// 箪岭 鳖失奶 丞毛银匀凶桦宁及质
|
||||
// 属性反転アイテムを使った場合の処理
|
||||
//--------------------------------------------------------------
|
||||
// 爵 及桦宁
|
||||
// 戦闘中の場合
|
||||
void ITEM_useAttReverse_Battle(
|
||||
int charaindex, // 银匀凶谛及奶件犯永弁旦
|
||||
int toNo, // 银歹木月谛及 寞
|
||||
int haveitemindex // 银丹谛及失奶 丞及 寞
|
||||
int charaindex, // 使った人のインデックス
|
||||
int toNo, // 使われる人の番号
|
||||
int haveitemindex // 使う人のアイテムの欄番号
|
||||
)
|
||||
{
|
||||
int itemindex, battleindex, attackNo;
|
||||
|
||||
|
||||
// 失奶 丞互丐月井升丹井
|
||||
// アイテムがあるかどうか
|
||||
itemindex = CHAR_getItemIndex( charaindex, haveitemindex);
|
||||
if(!ITEM_CHECKINDEX(itemindex)) return;
|
||||
|
||||
//------- 仇仇井日质 -----------
|
||||
//------- ここから処理 -----------
|
||||
battleindex = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEINDEX );
|
||||
|
||||
attackNo = BATTLE_Index2No( battleindex, charaindex );
|
||||
|
||||
// 蝈够
|
||||
// 全員
|
||||
BATTLE_MultiAttReverse( battleindex, attackNo, toNo,
|
||||
SPR_item3, SPR_kyu );
|
||||
|
||||
// 爵 卞失奶 丞互壅尹凶桦宁及隋骚质
|
||||
// 戦闘中にアイテムが消えた場合の共通処理
|
||||
BATTLE_ItemUseDelete( charaindex, haveitemindex );
|
||||
|
||||
|
||||
@ -635,33 +635,33 @@ void ITEM_useAttReverse_Battle(
|
||||
|
||||
|
||||
//--------------------------------------------------------------
|
||||
// 竣濮井日汊唾毛银匀凶桦宁及质
|
||||
// 気絶から復活を使った場合の処理
|
||||
//--------------------------------------------------------------
|
||||
// 爵 及桦宁
|
||||
// 戦闘中の場合
|
||||
void ITEM_useRessurect(
|
||||
int charaindex, // 银匀凶谛及奶件犯永弁旦
|
||||
int toNo, // 银歹木月谛及 寞
|
||||
int haveitemindex // 银丹谛及失奶 丞及 寞
|
||||
int charaindex, // 使った人のインデックス
|
||||
int toNo, // 使われる人の番号
|
||||
int haveitemindex // 使う人のアイテムの欄番号
|
||||
)
|
||||
{
|
||||
int itemindex, battleindex, attackNo, par = 0, pow = 0, ReceveEffect;
|
||||
char *pszP = NULL;
|
||||
|
||||
|
||||
// 失奶 丞互丐月井升丹井
|
||||
// アイテムがあるかどうか
|
||||
itemindex = CHAR_getItemIndex( charaindex, haveitemindex);
|
||||
if(!ITEM_CHECKINDEX(itemindex)) return;
|
||||
|
||||
//------- 仇仇井日质 -----------
|
||||
//------- ここから処理 -----------
|
||||
pszP = ITEM_getChar(itemindex, ITEM_ARGUMENT );
|
||||
|
||||
if( strstr( pszP, "%" ) ){ // 仇及桦宁反⊙煌遥
|
||||
if( strstr( pszP, "%" ) ){ // この場合は%計算
|
||||
par = 1;
|
||||
}
|
||||
|
||||
if( sscanf( pszP, "%d", &pow ) != 1 ){
|
||||
// 窒禾奶件玄荚汊允月井"
|
||||
pow = 0; // ㄟ及桦宁反敦蝈荚汊
|
||||
// 何ポイント回復するか?
|
||||
pow = 0; // 0の場合は完全回復
|
||||
}
|
||||
|
||||
battleindex = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEINDEX );
|
||||
@ -680,12 +680,12 @@ void ITEM_useRessurect(
|
||||
ReceveEffect = SPR_fukkatu3;
|
||||
}
|
||||
|
||||
// 蝈够
|
||||
// 全員
|
||||
BATTLE_MultiRessurect( battleindex, attackNo, toNo,
|
||||
pow, par, SPR_item3, ReceveEffect );
|
||||
|
||||
|
||||
// 爵 卞失奶 丞互壅尹凶桦宁及隋骚质
|
||||
// 戦闘中にアイテムが消えた場合の共通処理
|
||||
BATTLE_ItemUseDelete( charaindex, haveitemindex );
|
||||
|
||||
}
|
||||
@ -693,31 +693,31 @@ void ITEM_useRessurect(
|
||||
|
||||
|
||||
//--------------------------------------------------------------
|
||||
// 凯 膜恳毛银匀凶桦宁及质
|
||||
// 捕獲率修正を使った場合の処理
|
||||
//--------------------------------------------------------------
|
||||
// 爵 及桦宁
|
||||
// 戦闘中の場合
|
||||
void ITEM_useCaptureUp_Battle(
|
||||
int charaindex, // 银匀凶谛及奶件犯永弁旦
|
||||
int toNo, // 银歹木月谛及 寞
|
||||
int haveitemindex // 银丹谛及失奶 丞及 寞
|
||||
int charaindex, // 使った人のインデックス
|
||||
int toNo, // 使われる人の番号
|
||||
int haveitemindex // 使う人のアイテムの欄番号
|
||||
)
|
||||
{
|
||||
int itemindex, battleindex, attackNo, pow = 5, ReceveEffect;
|
||||
char *pArg;
|
||||
|
||||
// 失奶 丞互丐月井升丹井
|
||||
// アイテムがあるかどうか
|
||||
itemindex = CHAR_getItemIndex( charaindex, haveitemindex);
|
||||
if(!ITEM_CHECKINDEX(itemindex)) return;
|
||||
|
||||
//------- 仇仇井日质 -----------
|
||||
// 由仿丢□正毛潸
|
||||
//------- ここから処理 -----------
|
||||
// パラメータを取得
|
||||
pArg = ITEM_getChar(itemindex, ITEM_ARGUMENT );
|
||||
|
||||
// 由仿丢□正 中及匹撩
|
||||
// パラメータ無いので失敗
|
||||
if( pArg == "\0" )return ;
|
||||
|
||||
if( sscanf( pArg, "%d", &pow ) != 1 ){
|
||||
// 窒禾奶件玄荚汊允月井"
|
||||
// 何ポイント回復するか?
|
||||
pow = 5;
|
||||
}
|
||||
|
||||
@ -727,11 +727,11 @@ void ITEM_useCaptureUp_Battle(
|
||||
|
||||
ReceveEffect = SPR_hoshi;
|
||||
|
||||
// 蝈够
|
||||
// 全員
|
||||
BATTLE_MultiCaptureUp( battleindex, attackNo, toNo,
|
||||
pow, SPR_item3, ReceveEffect );
|
||||
|
||||
// 爵 卞失奶 丞互壅尹凶桦宁及隋骚质
|
||||
// 戦闘中にアイテムが消えた場合の共通処理
|
||||
BATTLE_ItemUseDelete( charaindex, haveitemindex );
|
||||
|
||||
}
|
||||
@ -741,7 +741,7 @@ void ITEM_useCracker_Effect( charaindex, toindex, haveitemindex)
|
||||
int itemindex,x,y,tofd;
|
||||
|
||||
itemindex = CHAR_getItemIndex(charaindex,haveitemindex);
|
||||
// 检查物品
|
||||
// 检查物品
|
||||
if(!ITEM_CHECKINDEX(itemindex)) return;
|
||||
|
||||
x = CHAR_getInt( charaindex, CHAR_X);
|
||||
@ -753,13 +753,13 @@ void ITEM_useCracker_Effect( charaindex, toindex, haveitemindex)
|
||||
//to client
|
||||
tofd = getfdFromCharaIndex( charaindex );
|
||||
lssproto_IC_send(tofd, x, y);
|
||||
//清除道具
|
||||
//清除道具
|
||||
BATTLE_ItemUseDelete(charaindex,haveitemindex);
|
||||
CHAR_talkToCli(charaindex,-1,"道具消失了。",CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli(charaindex,-1,"道具消失了。",CHAR_COLORYELLOW);
|
||||
|
||||
}
|
||||
#endif
|
||||
#ifdef _ITEM_REFRESH //vincent 解除异常状态道具
|
||||
#ifdef _ITEM_REFRESH //vincent 解除异常状态道具
|
||||
void ITEM_useRefresh_Effect( charaindex, toindex, haveitemindex)
|
||||
{
|
||||
int i,itemindex,ReceveEffect;
|
||||
@ -770,16 +770,16 @@ void ITEM_useRefresh_Effect( charaindex, toindex, haveitemindex)
|
||||
char *pszP;
|
||||
|
||||
//print("\nvincent--ITEM_useRefresh_Effect");
|
||||
// 检查物品
|
||||
// 检查物品
|
||||
itemindex = CHAR_getItemIndex(charaindex,haveitemindex);
|
||||
if(!ITEM_CHECKINDEX(itemindex)) return;
|
||||
arg = ITEM_getChar(itemindex, ITEM_ARGUMENT );
|
||||
pszP = arg;
|
||||
// 躲绊毛潸
|
||||
// 効果を取得
|
||||
for( ;status == -1 && pszP[0] != 0; pszP++ ){
|
||||
// ㄠ井日腹绸
|
||||
// 1から検索
|
||||
for( i = 1; i < BATTLE_ST_END; i ++ ){
|
||||
// 躲绊疋永正伉井"
|
||||
// 効果ピッタリか?
|
||||
if( strncmp( pszP, aszStatus[i], 2 ) == 0 ){
|
||||
status = i;
|
||||
pszP +=2;
|
||||
@ -788,28 +788,28 @@ void ITEM_useRefresh_Effect( charaindex, toindex, haveitemindex)
|
||||
}
|
||||
}
|
||||
//print("\nvincent-->status:%d",status);
|
||||
// 躲绊卅中及匹撩
|
||||
// 効果ないので失敗
|
||||
if( status == -1 ) return;
|
||||
|
||||
// 田玄伙 寞
|
||||
// バトル番号
|
||||
battleindex = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEINDEX );
|
||||
index2 = BATTLE_No2Index( battleindex, toindex);//被击中目标之index
|
||||
index2 = BATTLE_No2Index( battleindex, toindex);//被击中目标之index
|
||||
attackNo = BATTLE_Index2No( battleindex, charaindex );
|
||||
// defNo = BATTLE_Index2No( battleindex, index2 );
|
||||
//print("\nvincent-->charaindex:%d,attackNo:%d,index2:%d,defNo:%d,",charaindex,attackNo,index2,defNo);
|
||||
|
||||
/* 平乓仿弁正□及赭 伉旦玄井日壅蛔 */
|
||||
/* キャラクターの所持品リストから消去 */
|
||||
CHAR_setItemIndex(charaindex, haveitemindex ,-1);
|
||||
CHAR_sendItemDataOne( charaindex, haveitemindex);/* 失奶 丞凳蕙 */
|
||||
CHAR_sendItemDataOne( charaindex, haveitemindex);/* アイテム更新 */
|
||||
// if( CHAR_getWorkInt( charaindex, StatusTbl[status] ) > 0 ){
|
||||
// ReceveEffect = SPR_tyusya;
|
||||
// }else{
|
||||
// ReceveEffect = SPR_hoshi;
|
||||
// }
|
||||
ReceveEffect = SPR_tyusya;//打针
|
||||
ReceveEffect = SPR_tyusya;//打针
|
||||
BATTLE_MultiStatusRecovery( battleindex, attackNo, toindex,
|
||||
status, MAGIC_EFFECT_USER, ReceveEffect );
|
||||
/* 壅允 */
|
||||
/* 消す */
|
||||
ITEM_endExistItemsOne( itemindex );
|
||||
//////////////////////////
|
||||
// BATTLE_MultiList( battleindex, defNo, ToList );
|
||||
@ -823,7 +823,7 @@ void ITEM_useRefresh_Effect( charaindex, toindex, haveitemindex)
|
||||
////////////////////////////
|
||||
}
|
||||
#endif
|
||||
#ifdef _ITEM_ADDEXP //vincent 经验提升
|
||||
#ifdef _ITEM_ADDEXP //vincent 经验提升
|
||||
void ITEM_useAddexp_Effect( charaindex, toindex, haveitemindex)
|
||||
{
|
||||
int itemindex,power,vtime;
|
||||
@ -833,14 +833,14 @@ void ITEM_useAddexp_Effect( charaindex, toindex, haveitemindex)
|
||||
|
||||
itemindex = CHAR_getItemIndex(charaindex,haveitemindex);
|
||||
|
||||
// 检查物品
|
||||
// 检查物品
|
||||
if(!ITEM_CHECKINDEX(itemindex)) return;
|
||||
arg = ITEM_getChar(itemindex, ITEM_ARGUMENT );
|
||||
|
||||
if( (p = strstr( arg, "增" )) != NULL ){
|
||||
if( (p = strstr( arg, "增" )) != NULL ){
|
||||
sscanf( p+2, "%d", &power );
|
||||
}
|
||||
if( (p = strstr( arg, "分" )) != NULL ){
|
||||
if( (p = strstr( arg, "分" )) != NULL ){
|
||||
sscanf( p+2, "%d", &vtime );
|
||||
}
|
||||
if( p == NULL )return;
|
||||
@ -850,12 +850,12 @@ void ITEM_useAddexp_Effect( charaindex, toindex, haveitemindex)
|
||||
0 != (int)(CHAR_getInt( charaindex, CHAR_ADDEXPPOWER))
|
||||
)
|
||||
{
|
||||
CHAR_talkToCli( charaindex, -1, "经验增加的效果不同,无法叠加使用", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( charaindex, -1, "经验增加的效果不同,无法叠加使用", CHAR_COLORYELLOW);
|
||||
return;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#ifdef _ITEM_ADDEXP2 // 智果时间可以累加
|
||||
#ifdef _ITEM_ADDEXP2 // 智果时间可以累加
|
||||
{
|
||||
int point;
|
||||
point = CHAR_getInt( charaindex, CHAR_ADDEXPPOWER)
|
||||
@ -865,7 +865,7 @@ void ITEM_useAddexp_Effect( charaindex, toindex, haveitemindex)
|
||||
#else
|
||||
if( point >= 7200000) {
|
||||
#endif
|
||||
CHAR_talkToCli( charaindex, -1, "智慧之果累计时间及效果已达上限。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( charaindex, -1, "智慧之果累计时间及效果已达上限。", CHAR_COLORYELLOW);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -891,14 +891,14 @@ void ITEM_useAddexp_Effect( charaindex, toindex, haveitemindex)
|
||||
CHAR_setInt( charaindex, CHAR_ADDEXPPOWER, power);
|
||||
CHAR_setInt( charaindex, CHAR_ADDEXPTIME,vtime*60 );
|
||||
|
||||
//清除道具
|
||||
//清除道具
|
||||
BATTLE_ItemUseDelete(charaindex,haveitemindex);
|
||||
//sprintf(szBuffer, "学习经验的能力提升了%d%", power);
|
||||
sprintf(szBuffer, "学习经验的能力提升了%d%,时效剩余%d分钟。", power, vtime);
|
||||
//sprintf(szBuffer, "学习经验的能力提升了%d%", power);
|
||||
sprintf(szBuffer, "学习经验的能力提升了%d%,时效剩余%d分钟。", power, vtime);
|
||||
CHAR_talkToCli(charaindex,-1,szBuffer,CHAR_COLORYELLOW);
|
||||
//int mfd=getfdFromCharaIndex( charaindex);
|
||||
CHAR_charSaveFromConnect(charaindex, FALSE);
|
||||
CHAR_talkToCli(charaindex, -1, "系统为你自动存档!", CHAR_COLORRED);
|
||||
CHAR_talkToCli(charaindex, -1, "系统为你自动存档!", CHAR_COLORRED);
|
||||
}
|
||||
#endif
|
||||
//Terry add 2001/12/24
|
||||
@ -918,7 +918,7 @@ void ITEM_useFirecracker_Battle( charaindex, toindex, haveitemindex)
|
||||
#endif
|
||||
|
||||
itemindex = CHAR_getItemIndex(charaindex,haveitemindex);
|
||||
// 检查物品
|
||||
// 检查物品
|
||||
if(!ITEM_CHECKINDEX(itemindex)) return;
|
||||
|
||||
battleindex = CHAR_getWorkInt(charaindex,CHAR_WORKBATTLEINDEX);
|
||||
@ -935,24 +935,24 @@ void ITEM_useFirecracker_Battle( charaindex, toindex, haveitemindex)
|
||||
MySide_start = safeSide*SIDE_OFFSET;
|
||||
MySide_end = ((safeSide*SIDE_OFFSET) + SIDE_OFFSET);
|
||||
|
||||
if( (toindex >= MySide_start) && (toindex<MySide_end) ){ //同边
|
||||
if( (toindex >= MySide_start) && (toindex<MySide_end) ){ //同边
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if( BATTLE_Index2No( battleindex, charaindex ) == toindex ){
|
||||
BATTLE_ItemUseDelete(charaindex,haveitemindex);//用在自身
|
||||
BATTLE_ItemUseDelete(charaindex,haveitemindex);//用在自身
|
||||
return;
|
||||
}
|
||||
|
||||
if( CHAR_getInt( index2, CHAR_WHICHTYPE) == CHAR_TYPEPLAYER ) {
|
||||
petid = -1;//作用在人物
|
||||
petid = -1;//作用在人物
|
||||
}else if( CHAR_getInt( index2, CHAR_WHICHTYPE) == CHAR_TYPEPET ) {
|
||||
masteridx = BATTLE_No2Index(battleindex,toindex-5);//作用在宠物
|
||||
masteridx = BATTLE_No2Index(battleindex,toindex-5);//作用在宠物
|
||||
|
||||
if( !CHAR_CHECKINDEX( masteridx) ) return;
|
||||
|
||||
petid = CHAR_getInt(index2,CHAR_PETID);//宠物id
|
||||
petid = CHAR_getInt(index2,CHAR_PETID);//宠物id
|
||||
}else if( CHAR_getInt( index2, CHAR_WHICHTYPE) == CHAR_TYPEENEMY ) {
|
||||
petid = CHAR_getInt(index2,CHAR_PETID);
|
||||
}
|
||||
@ -969,48 +969,48 @@ void ITEM_useFirecracker_Battle( charaindex, toindex, haveitemindex)
|
||||
while( getStringFromIndexWithDelim( token,"_", i, buf1, sizeof( buf1)) != FALSE ) {
|
||||
//while( getStringFromIndexWithDelim( token,"|", i, buf1, sizeof( buf1)) != FALSE ) {
|
||||
i++;
|
||||
if( petid == atoi( buf1) ){//年兽判别
|
||||
if( petid == atoi( buf1) ){//年兽判别
|
||||
FINDPET = TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
sprintf(szWork,"BB|a%X|w3|r%X|f0|d0|p0|FF|",BATTLE_Index2No(battleindex,charaindex),toindex);
|
||||
BATTLESTR_ADD(szWork);//丢出鞭炮的动画
|
||||
//送讯息至玩家
|
||||
if( FINDPET == TRUE ) {//若为年兽
|
||||
BATTLESTR_ADD(szWork);//丢出鞭炮的动画
|
||||
//送讯息至玩家
|
||||
if( FINDPET == TRUE ) {//若为年兽
|
||||
char buf4[255];
|
||||
sprintf( buf4, "%s被吓跑了!", CHAR_getChar( index2, CHAR_NAME));
|
||||
sprintf( buf4, "%s被吓跑了!", CHAR_getChar( index2, CHAR_NAME));
|
||||
|
||||
BATTLE_Exit(index2,battleindex);//离开战斗
|
||||
BATTLE_Exit(index2,battleindex);//离开战斗
|
||||
if( CHAR_CHECKINDEX( masteridx) ){
|
||||
CHAR_setInt(masteridx,CHAR_DEFAULTPET,-1);//无参战宠
|
||||
CHAR_setInt(masteridx,CHAR_DEFAULTPET,-1);//无参战宠
|
||||
CHAR_talkToCli( masteridx,-1, buf4, CHAR_COLORYELLOW);
|
||||
}
|
||||
|
||||
sprintf(szWork,"BQ|e%X|",toindex);//逃跑动画
|
||||
sprintf(szWork,"BQ|e%X|",toindex);//逃跑动画
|
||||
BATTLESTR_ADD(szWork);
|
||||
CHAR_talkToCli( charaindex,-1, buf4, CHAR_COLORYELLOW);
|
||||
}else {
|
||||
CHAR_talkToCli( charaindex, -1, "什麽事都没发生。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( charaindex, -1, "什麽事都没发生。", CHAR_COLORYELLOW);
|
||||
}
|
||||
BATTLE_ItemUseDelete( charaindex, haveitemindex);//删除鞭炮
|
||||
BATTLE_ItemUseDelete( charaindex, haveitemindex);//删除鞭炮
|
||||
#else
|
||||
|
||||
index2 = BATTLE_No2Index(battleindex,toindex);
|
||||
// 被炸到的是否为宠物
|
||||
// 被炸到的是否为宠物
|
||||
if(CHAR_getInt(index2,CHAR_WHICHTYPE) == CHAR_TYPEPET) {
|
||||
// 如果被炸的是年兽
|
||||
// 如果被炸的是年兽
|
||||
if(CHAR_getInt(index2,CHAR_PETID) >= 901 && CHAR_getInt(index2,CHAR_PETID) <= 904){
|
||||
// 取得目标的正後方的角色的index
|
||||
// 取得目标的正後方的角色的index
|
||||
masteridx = BATTLE_No2Index(battleindex,toindex-5);
|
||||
// 如果对战的是玩家
|
||||
// 如果对战的是玩家
|
||||
if(CHAR_getInt(masteridx,CHAR_WHICHTYPE) == CHAR_TYPEPLAYER) PetEscape = 1;
|
||||
else print("\n年兽在遇敌时出现");
|
||||
else print("\n年兽在遇敌时出现");
|
||||
}
|
||||
}
|
||||
|
||||
// 如果不是炸自己
|
||||
// 如果不是炸自己
|
||||
if(BATTLE_Index2No(battleindex,charaindex) != toindex)
|
||||
{
|
||||
sprintf(szWork,"BB|a%X|w3|r%X|f0|d0|p0|FF|",BATTLE_Index2No(battleindex,charaindex),toindex);
|
||||
@ -1021,13 +1021,13 @@ void ITEM_useFirecracker_Battle( charaindex, toindex, haveitemindex)
|
||||
CHAR_setInt(masteridx,CHAR_DEFAULTPET,-1);
|
||||
sprintf(szWork,"BQ|e%X|",toindex);
|
||||
BATTLESTR_ADD(szWork);
|
||||
CHAR_talkToCli(masteridx,-1,"年兽被吓跑了!",CHAR_COLORWHITE);
|
||||
CHAR_talkToCli(charaindex,-1,"年兽被吓跑了!",CHAR_COLORWHITE);
|
||||
CHAR_talkToCli(masteridx,-1,"年兽被吓跑了!",CHAR_COLORWHITE);
|
||||
CHAR_talkToCli(charaindex,-1,"年兽被吓跑了!",CHAR_COLORWHITE);
|
||||
}
|
||||
}
|
||||
CHAR_talkToCli(charaindex,-1,"什麽事都没发生。",CHAR_COLORWHITE);
|
||||
CHAR_talkToCli(charaindex,-1,"道具消失了。",CHAR_COLORWHITE);
|
||||
// 使用後道具消失
|
||||
CHAR_talkToCli(charaindex,-1,"什麽事都没发生。",CHAR_COLORWHITE);
|
||||
CHAR_talkToCli(charaindex,-1,"道具消失了。",CHAR_COLORWHITE);
|
||||
// 使用後道具消失
|
||||
BATTLE_ItemUseDelete(charaindex,haveitemindex);
|
||||
#endif
|
||||
}
|
||||
@ -1038,9 +1038,9 @@ void ITEM_useFirecracker_Battle( charaindex, toindex, haveitemindex)
|
||||
|
||||
|
||||
|
||||
//气绝状态回复耐力,复加复活(光,镜,守)精灵 参数同魔法(光,镜,守)精灵,但只能在战斗之使用,用完就没了
|
||||
//参数 例如:耐力值 吸 turn 1
|
||||
#ifdef _FEV_ADD_NEW_ITEM // FEV ADD 增加复活守精
|
||||
//气绝状态回复耐力,复加复活(光,镜,守)精灵 参数同魔法(光,镜,守)精灵,但只能在战斗之使用,用完就没了
|
||||
//参数 例如:耐力值 吸 turn 1
|
||||
#ifdef _FEV_ADD_NEW_ITEM // FEV ADD 增加复活守精
|
||||
void ITEM_ResAndDef( int charaindex, int toindex, int haveitemindex )
|
||||
{
|
||||
int itemindex, battleindex, attackNo, par = 0, pow = 0, ReceveEffect;
|
||||
@ -1051,37 +1051,37 @@ void ITEM_ResAndDef( int charaindex, int toindex, int haveitemindex )
|
||||
char magicarg4[200];
|
||||
|
||||
char *pszP = NULL;
|
||||
char delim[] = " ";//协助分解字串的区隔字元
|
||||
char delim[] = " ";//协助分解字串的区隔字元
|
||||
|
||||
int status = -1, i, turn = 3;
|
||||
char szTurn[] = "turn";
|
||||
|
||||
// 失奶 丞互丐月井升丹井
|
||||
// アイテムがあるかどうか
|
||||
itemindex = CHAR_getItemIndex( charaindex, haveitemindex);
|
||||
if(!ITEM_CHECKINDEX(itemindex)) return;
|
||||
|
||||
buffer = ITEM_getChar(itemindex, ITEM_ARGUMENT );//整串字串
|
||||
pszP = strtok(buffer, delim);//第一个参数
|
||||
magicarg = strtok(NULL, delim);//第二个参数
|
||||
magicarg2 = strtok(NULL, delim);//第叁个参数
|
||||
magicarg3 = strtok(NULL, delim);//第四个参数
|
||||
buffer = ITEM_getChar(itemindex, ITEM_ARGUMENT );//整串字串
|
||||
pszP = strtok(buffer, delim);//第一个参数
|
||||
magicarg = strtok(NULL, delim);//第二个参数
|
||||
magicarg2 = strtok(NULL, delim);//第叁个参数
|
||||
magicarg3 = strtok(NULL, delim);//第四个参数
|
||||
sprintf(magicarg4,"%s %s %s",magicarg,magicarg2,magicarg3);
|
||||
magicarg = (char*)magicarg4;
|
||||
|
||||
//光镜守..不得使用敌方
|
||||
//光镜守..不得使用敌方
|
||||
battleindex = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEINDEX );
|
||||
if( CHAR_getInt( charaindex, CHAR_WHICHTYPE ) == CHAR_TYPEPLAYER
|
||||
//&& BattleArray[battleindex].type != BATTLE_TYPE_P_vs_P
|
||||
){
|
||||
if( BATTLE_CheckSameSide( charaindex, toindex) == 0 ){//不同边
|
||||
if( BATTLE_CheckSameSide( charaindex, toindex) == 0 ){//不同边
|
||||
battleindex = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEINDEX );
|
||||
BATTLE_NoAction( battleindex, BATTLE_Index2No( battleindex, charaindex) );
|
||||
CHAR_talkToCli( charaindex, -1, "光镜守..不得施予非玩家敌方。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( charaindex, -1, "光镜守..不得施予非玩家敌方。", CHAR_COLORYELLOW);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
//在气绝状态回复耐力
|
||||
//在气绝状态回复耐力
|
||||
if( strstr( pszP, "%" ) ){
|
||||
par = 1;
|
||||
}
|
||||
@ -1092,7 +1092,7 @@ void ITEM_ResAndDef( int charaindex, int toindex, int haveitemindex )
|
||||
|
||||
attackNo = BATTLE_Index2No( battleindex, charaindex );
|
||||
|
||||
//选择代表的特效
|
||||
//选择代表的特效
|
||||
if( pow <= 0 ){
|
||||
ReceveEffect = SPR_fukkatu3;
|
||||
}else
|
||||
@ -1109,12 +1109,12 @@ void ITEM_ResAndDef( int charaindex, int toindex, int haveitemindex )
|
||||
pow, par, SPR_item3, ReceveEffect );
|
||||
|
||||
|
||||
//(光,镜,守)精灵
|
||||
//(光,镜,守)精灵
|
||||
|
||||
// 躲绊毛潸
|
||||
// 効果を取得
|
||||
for( ;status == -1 && magicarg[0] != 0; magicarg++ ){
|
||||
for( i = 1; i < BATTLE_MD_END; i ++ ){
|
||||
// 躲绊疋永正伉井"
|
||||
// 効果ピッタリか?
|
||||
if( strncmp( magicarg, aszMagicDef[i], 2 ) == 0 ){
|
||||
status = i;
|
||||
pszP +=2;
|
||||
@ -1122,22 +1122,22 @@ void ITEM_ResAndDef( int charaindex, int toindex, int haveitemindex )
|
||||
}
|
||||
}
|
||||
}
|
||||
// 躲绊卅中及匹撩
|
||||
// 効果ないので失敗
|
||||
if( status == -1 ) return;
|
||||
|
||||
// 窒荚 凳今六月井"
|
||||
// 何回変更させるか?
|
||||
if( ( magicarg = strstr( magicarg, szTurn ) ) != NULL){
|
||||
magicarg += sizeof( szTurn );
|
||||
sscanf( magicarg, "%d", &turn );
|
||||
}
|
||||
|
||||
//print("次数:%d",turn);
|
||||
//print("次数:%d",turn);
|
||||
|
||||
// 田玄伙 寞
|
||||
// バトル番号
|
||||
battleindex = CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEINDEX );
|
||||
attackNo = BATTLE_Index2No( battleindex, charaindex );
|
||||
|
||||
// 蝈够
|
||||
// 全員
|
||||
BATTLE_MultiMagicDef( battleindex, attackNo, toindex,
|
||||
status, turn, MAGIC_EFFECT_USER, SPR_difence );
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -21,56 +21,56 @@
|
||||
#include "petmail.h"
|
||||
#include "log.h"
|
||||
|
||||
/*裔烂丢永本□斥及 赢赢今[票匹烂聒允月 侬 及赢今反
|
||||
仇木动票卞允月仇午*/
|
||||
/*固定メッセージの最長長さ。下で定義する文字列の長さは
|
||||
これ以下にすること*/
|
||||
#define ADDRESSBOOK_FIXEDMESSAGE_MAXLEN 128
|
||||
|
||||
/* 愤坌及蟆卞簿手中卅井匀凶及匹}失玉伊旦皮永弁卞馨笛匹五卅井匀凶
|
||||
午五及裔烂丢永本□斥 */
|
||||
#define ADDRESSBOOK_CANTADD "那里没有任何人。"
|
||||
#define ADDRESSBOOK_CANTADD2 "无法交换名片。"
|
||||
/* 愤坌及蟆卞簿手中卅井匀凶及匹}失玉伊旦皮永弁卞馨笛匹五卅井匀凶
|
||||
午五及裔烂丢永本□斥 */
|
||||
#define ADDRESSBOOK_CANTADD "那里没有任何人。"
|
||||
#define ADDRESSBOOK_CANTADD2 "无法交换名片。"
|
||||
|
||||
/* 簿井毛笛尹月仇午互匹五凶午五}笛尹方丹午仄凶谛卞霜耨允月丢永本□斥*/
|
||||
#define ADDRESSBOOK_ADDED "和%s交换名片 。"
|
||||
/* 簿井毛笛尹月仇午互匹五凶午五}笛尹方丹午仄凶谛卞霜耨允月丢永本□斥*/
|
||||
#define ADDRESSBOOK_ADDED "和%s交换名片 。"
|
||||
|
||||
/* 簿井卞涌毛创尹日木凶日 */
|
||||
#define ADDRESSBOOK_BEINGADDED "和%s交换名片 。"
|
||||
/* 簿井卞涌毛创尹日木凶日 */
|
||||
#define ADDRESSBOOK_BEINGADDED "和%s交换名片 。"
|
||||
|
||||
/* 巨件玄伉互中匀天中分匀凶午五及丢永本□斥 */
|
||||
#define ADDRESSBOOK_MYTABLEFULL "名片匣已满。"
|
||||
/* 巨件玄伉互中匀天中分匀凶午五及丢永本□斥 */
|
||||
#define ADDRESSBOOK_MYTABLEFULL "名片匣已满。"
|
||||
|
||||
/* 锹澎及巨件玄伉互中匀天中分匀凶午五及丢永本□斥 */
|
||||
#define ADDRESSBOOK_HISTABLEFULL "对方的名片匣已满。"
|
||||
/* 锹澎及巨件玄伉互中匀天中分匀凶午五及丢永本□斥 */
|
||||
#define ADDRESSBOOK_HISTABLEFULL "对方的名片匣已满。"
|
||||
|
||||
|
||||
/* 丢永本□斥毛霜耨允月及卞岳 仄凶午五 */
|
||||
#define ADDRESSBOOK_SENT "送信给%s 。"
|
||||
/* 丢永本□斥毛霜耨允月及卞岳 仄凶午五 */
|
||||
#define ADDRESSBOOK_SENT "送信给%s 。"
|
||||
|
||||
/* 丢永本□斥毛霜耨允月及卞撩 仄凶午五 */
|
||||
#define ADDRESSBOOK_UNSENT "无法送信给%s 。"
|
||||
/* 丢永本□斥毛霜耨允月及卞撩 仄凶午五 */
|
||||
#define ADDRESSBOOK_UNSENT "无法送信给%s 。"
|
||||
|
||||
/* 簿井毛创尹方丹午仄凶互}湃卞创尹化中凶 */
|
||||
#define ADDRESSBOOK_ALREADYADDED "已经和%s交换过名片了。 "
|
||||
/* 簿井毛创尹方丹午仄凶互}湃卞创尹化中凶 */
|
||||
#define ADDRESSBOOK_ALREADYADDED "已经和%s交换过名片了。 "
|
||||
|
||||
/* 铜毛域 读卞 丹橇谪 */
|
||||
#define ADDRESSBOOK_GIVEADDRESS "从%s得到名片。"
|
||||
/* 铜毛域 读卞 丹橇谪 */
|
||||
#define ADDRESSBOOK_GIVEADDRESS "从%s得到名片。"
|
||||
|
||||
/* 铜毛域 读卞丐仆月橇谪 */
|
||||
#define ADDRESSBOOK_TAKEADDRESS1 "给%s自己的名片。"
|
||||
/* 铜毛域 读卞丐仆月橇谪 */
|
||||
#define ADDRESSBOOK_TAKEADDRESS2 "因为%s想要名片,所以将名片给他了。"
|
||||
/* 铜毛域 读卞丐仆月橇谪 */
|
||||
#define ADDRESSBOOK_TAKEADDRESS1 "给%s自己的名片。"
|
||||
/* 铜毛域 读卞丐仆月橇谪 */
|
||||
#define ADDRESSBOOK_TAKEADDRESS2 "因为%s想要名片,所以将名片给他了。"
|
||||
|
||||
#define ADDRESSBOOK_RETURNED1 \
|
||||
"从%s寄来信件,但由於没有%s的名片又将信件退回。"
|
||||
"从%s寄来信件,但由於没有%s的名片又将信件退回。"
|
||||
|
||||
#define ADDRESSBOOK_RETURNED2 \
|
||||
"寄信件给%s,但由於%s 没有名片,所以信件又被退回来了。"
|
||||
"寄信件给%s,但由於%s 没有名片,所以信件又被退回来了。"
|
||||
|
||||
#define PETMAIL_RETURNED1 \
|
||||
"%s不在这个世界里,所以无法寄送信件给他。"
|
||||
"%s不在这个世界里,所以无法寄送信件给他。"
|
||||
|
||||
|
||||
/* static匹银丹迕[ 五中袄手*/
|
||||
/* static匹银丹迕[ 五中袄手*/
|
||||
char ADDRESSBOOK_returnstring[25*128];
|
||||
|
||||
|
||||
@ -80,20 +80,20 @@ static BOOL ADDRESSBOOK_makeEntryFromCharaindex( int charaindex,
|
||||
ADDRESSBOOK_entry* ae);
|
||||
|
||||
/*------------------------------------------------------------
|
||||
* 失玉伊旦皮永弁及丢永本□斥毛霜耨允月
|
||||
* MSG皿夫玄戊伙井日勾井歹木月[
|
||||
* 失玉伊旦皮永弁及丢永本□斥毛霜耨允月
|
||||
* MSG皿夫玄戊伙井日勾井歹木月[
|
||||
*
|
||||
* 支月仇午反}connection井日cdkey匹腹绸仄化}平乓仿 手
|
||||
* 甲永玄仄凶日} MSG_send允月[公及午五卞}愤坌及树 互
|
||||
* 锹澎及伉旦玄卞卅井匀凶日窒手仄卅中午中丹仇午分[
|
||||
* 娄醒
|
||||
* cindex int 平乓仿及index
|
||||
* aindex int 失玉伊旦皮永弁及index
|
||||
* text char* 霜耨允月 侬
|
||||
* color int 缙
|
||||
* 忒曰袄
|
||||
* 左件仿奶件及平乓仿卞丢永本□斥毛霜耨仄凶日TRUE ,
|
||||
* 左白仿奶件卞瓒 仄凶日FALSE毛井尹允
|
||||
* 支月仇午反}connection井日cdkey匹腹绸仄化}平乓仿 手
|
||||
* 甲永玄仄凶日} MSG_send允月[公及午五卞}愤坌及树 互
|
||||
* 锹澎及伉旦玄卞卅井匀凶日窒手仄卅中午中丹仇午分[
|
||||
* 娄醒
|
||||
* cindex int 平乓仿及index
|
||||
* aindex int 失玉伊旦皮永弁及index
|
||||
* text char* 霜耨允月 侬
|
||||
* color int 缙
|
||||
* 忒曰袄
|
||||
* 左件仿奶件及平乓仿卞丢永本□斥毛霜耨仄凶日TRUE ,
|
||||
* 左白仿奶件卞瓒 仄凶日FALSE毛井尹允
|
||||
------------------------------------------------------------*/
|
||||
BOOL ADDRESSBOOK_sendMessage( int cindex, int aindex, char* text , int color )
|
||||
{
|
||||
@ -124,16 +124,16 @@ BOOL ADDRESSBOOK_sendMessage( int cindex, int aindex, char* text , int color )
|
||||
tm1.tm_mon +1, tm1.tm_mday, tm1.tm_hour, tm1.tm_min,
|
||||
text);
|
||||
|
||||
/* 扔□田□ 卞中月凛 */
|
||||
/* 扔□田□ 卞中月凛 */
|
||||
for( i = 0 ; i < playernum ; i ++){
|
||||
if( CHAR_CHECKINDEX( i) &&
|
||||
strcmp( CHAR_getChar( i, CHAR_CDKEY), ae->cdkey) == 0 &&
|
||||
strcmp( CHAR_getChar( i, CHAR_NAME), ae->charname) == 0 )
|
||||
{
|
||||
/*
|
||||
* CDKEY 手 平乓仿 手域谯仄凶[公及平乓仿弁正及
|
||||
* 失玉伊旦皮永弁卞愤坌及树 互丐月井譬屯化}
|
||||
* 绣箕仄凶日}MSG允月[
|
||||
* CDKEY 手 平乓仿 手域谯仄凶[公及平乓仿弁正及
|
||||
* 失玉伊旦皮永弁卞愤坌及树 互丐月井譬屯化}
|
||||
* 绣箕仄凶日}MSG允月[
|
||||
*/
|
||||
int index_to_my_info =
|
||||
ADDRESSBOOK_getIndexInAddressbook( i ,
|
||||
@ -142,8 +142,8 @@ BOOL ADDRESSBOOK_sendMessage( int cindex, int aindex, char* text , int color )
|
||||
int fd;
|
||||
if( index_to_my_info < 0 ){
|
||||
/*
|
||||
* 锹澎互愤坌毛坫壅仄化仄引匀化月[
|
||||
* 域杀 谛卞]丢□伙互 凶午分仃骚襞允月[
|
||||
* 锹澎互愤坌毛坫壅仄化仄引匀化月[
|
||||
* 域杀 谛卞]丢□伙互 凶午分仃骚襞允月[
|
||||
*/
|
||||
//snprintf( tmpmsg, sizeof( tmpmsg),
|
||||
// ADDRESSBOOK_RETURNED1,
|
||||
@ -158,7 +158,7 @@ BOOL ADDRESSBOOK_sendMessage( int cindex, int aindex, char* text , int color )
|
||||
CHAR_getChar( i, CHAR_NAME),
|
||||
CHAR_getChar( i, CHAR_NAME));
|
||||
|
||||
/* 霜曰潜卞手丢永本□斥 */
|
||||
/* 霜曰潜卞手丢永本□斥 */
|
||||
CHAR_talkToCli( cindex, -1,
|
||||
tmpmsg , CHAR_COLORYELLOW );
|
||||
return FALSE;
|
||||
@ -167,7 +167,7 @@ BOOL ADDRESSBOOK_sendMessage( int cindex, int aindex, char* text , int color )
|
||||
fd = getfdFromCharaIndex( i);
|
||||
if( fd != -1 ) {
|
||||
lssproto_MSG_send( fd , index_to_my_info , textbuffer , color );
|
||||
/* 夫弘午曰 */
|
||||
/* 夫弘午曰 */
|
||||
printl( LOG_TALK, "CD=%s\tNM=%s\tT=%s" , mycd, mycharaname, textbuffer );
|
||||
|
||||
}
|
||||
@ -176,7 +176,7 @@ BOOL ADDRESSBOOK_sendMessage( int cindex, int aindex, char* text , int color )
|
||||
ae->charname );
|
||||
CHAR_talkToCli(cindex,-1, tmpmsg , color );
|
||||
|
||||
// WON ADD 修正snprintf会导致当机的bug
|
||||
// WON ADD 修正snprintf会导致当机的bug
|
||||
{
|
||||
char tmp[1000];
|
||||
sprintf( tmp , "ADDRESSBOOK_sendMessage:"
|
||||
@ -190,7 +190,7 @@ BOOL ADDRESSBOOK_sendMessage( int cindex, int aindex, char* text , int color )
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
/* 苇勾井日卅井匀凶凛反]失市它件玄扔□田□卞霜月 */
|
||||
/* 苇勾井日卅井匀凶凛反]失市它件玄扔□田□卞霜月 */
|
||||
saacproto_Message_send( acfd, mycd, mycharaname,
|
||||
ae->cdkey, ae->charname, textbuffer, color);
|
||||
CHAR_setInt( cindex, CHAR_SENDMAILCOUNT,
|
||||
@ -203,10 +203,10 @@ BOOL ADDRESSBOOK_sendMessage( int cindex, int aindex, char* text , int color )
|
||||
return FALSE;
|
||||
}
|
||||
/*------------------------------------------------------------
|
||||
* 失玉伊旦皮永弁及丢永本□斥毛霜耨允月
|
||||
* saac 井日msg 毛熬仃午匀化弁仿奶失件玄卞禾旦玄允月[
|
||||
* 失玉伊旦皮永弁及丢永本□斥毛霜耨允月
|
||||
* saac 井日msg 毛熬仃午匀化弁仿奶失件玄卞禾旦玄允月[
|
||||
*
|
||||
* 忒曰袄
|
||||
* 忒曰袄
|
||||
------------------------------------------------------------*/
|
||||
BOOL ADDRESSBOOK_sendMessage_FromOther( char *fromcdkey, char *fromcharaname,
|
||||
char *tocdkey, char *tocharaname,
|
||||
@ -218,7 +218,7 @@ BOOL ADDRESSBOOK_sendMessage_FromOther( char *fromcdkey, char *fromcharaname,
|
||||
char tmpmsg[256];
|
||||
int playernum = CHAR_getPlayerMaxNum();
|
||||
|
||||
/* 扔□田□ 毛腹绸允月 */
|
||||
/* 扔□田□ 毛腹绸允月 */
|
||||
for( i = 0 ; i < playernum ; i ++){
|
||||
if( CHAR_CHECKINDEX( i) &&
|
||||
strcmp( CHAR_getChar( i, CHAR_CDKEY), tocdkey) == 0 &&
|
||||
@ -226,16 +226,16 @@ BOOL ADDRESSBOOK_sendMessage_FromOther( char *fromcdkey, char *fromcharaname,
|
||||
{
|
||||
int index_to_my_info;
|
||||
/*
|
||||
* CDKEY 手 平乓仿 手域谯仄凶[公及平乓仿弁正及
|
||||
* 失玉伊旦皮永弁卞愤坌及树 互丐月井譬屯化}
|
||||
* 绣箕仄凶日}MSG允月[
|
||||
* CDKEY 手 平乓仿 手域谯仄凶[公及平乓仿弁正及
|
||||
* 失玉伊旦皮永弁卞愤坌及树 互丐月井譬屯化}
|
||||
* 绣箕仄凶日}MSG允月[
|
||||
*/
|
||||
|
||||
/* 扑旦 丞丢永本□斥互窖匀化五凶 */
|
||||
/* 扑旦 丞丢永本□斥互窖匀化五凶 */
|
||||
if( strcmp( fromcdkey, ADDRESSBOOK_SYSTEM) == 0 &&
|
||||
strcmp( fromcharaname, ADDRESSBOOK_SYSTEM ) == 0 )
|
||||
{
|
||||
/* 扑旦 丞丢永本□斥毛龚仁 */
|
||||
/* 扑旦 丞丢永本□斥毛龚仁 */
|
||||
CHAR_talkToCli( i, -1, text , color );
|
||||
break;
|
||||
}
|
||||
@ -245,13 +245,13 @@ BOOL ADDRESSBOOK_sendMessage_FromOther( char *fromcdkey, char *fromcharaname,
|
||||
fromcdkey, fromcharaname);
|
||||
if( index_to_my_info < 0 ){
|
||||
/*
|
||||
* 锹澎互愤坌毛坫壅仄化仄引匀化月[
|
||||
* 锹澎互愤坌毛坫壅仄化仄引匀化月[
|
||||
*/
|
||||
|
||||
snprintf( tmpmsg, sizeof( tmpmsg), ADDRESSBOOK_RETURNED2,
|
||||
tocharaname, tocharaname);
|
||||
|
||||
/* 霜曰潜卞手丢永本□斥 */
|
||||
/* 霜曰潜卞手丢永本□斥 */
|
||||
saacproto_Message_send( acfd, ADDRESSBOOK_SYSTEM , ADDRESSBOOK_SYSTEM,
|
||||
fromcdkey, fromcharaname, tmpmsg, CHAR_COLORYELLOW);
|
||||
|
||||
@ -260,7 +260,7 @@ BOOL ADDRESSBOOK_sendMessage_FromOther( char *fromcdkey, char *fromcharaname,
|
||||
int fd = getfdFromCharaIndex( i);
|
||||
if( fd != -1 ) {
|
||||
lssproto_MSG_send( fd , index_to_my_info , text , color );
|
||||
/* 夫弘午曰 */
|
||||
/* 夫弘午曰 */
|
||||
printl( LOG_TALK, "CD=%s\tNM=%s\tT=%s" , fromcdkey,
|
||||
fromcharaname, text );
|
||||
}
|
||||
@ -394,7 +394,7 @@ BOOL ADDRESSBOOK_addEntry( int meindex )
|
||||
int strlength;
|
||||
char msgbuf[1024];
|
||||
char escapebuf[2048];
|
||||
strcpy( msgbuf, "1\n和谁交换名片呢?\n");
|
||||
strcpy( msgbuf, "1\n和谁交换名片呢?\n");
|
||||
strlength = strlen( msgbuf);
|
||||
for( i = 0;
|
||||
CONNECT_getTradecardcharaindex(fd,i) != -1
|
||||
@ -404,7 +404,7 @@ BOOL ADDRESSBOOK_addEntry( int meindex )
|
||||
char buf[256];
|
||||
snprintf( buf, sizeof( buf),"%s\n", a);
|
||||
if( strlength + strlen( buf) > arraysizeof( msgbuf)){
|
||||
print( "%s:%d视窗讯息buffer不足。\n",
|
||||
print( "%s:%d视窗讯息buffer不足。\n",
|
||||
__FILE__,__LINE__);
|
||||
break;
|
||||
}
|
||||
@ -553,7 +553,7 @@ BOOL ADDRESSBOOK_sendAddressbookTable( int cindex )
|
||||
char charname_escaped[CHARNAMELEN*2];
|
||||
makeEscapeString( ae->charname, charname_escaped ,
|
||||
sizeof(charname_escaped ));
|
||||
/* 银迕白仿弘| 蟆|伊矛伙|仿奶白|白仿弘 */
|
||||
/* 银迕白仿弘| 蟆|伊矛伙|仿奶白|白仿弘 */
|
||||
snprintf( tmp , sizeof( tmp ),
|
||||
"%d|%s|%d|%d|%d|%d|%d|0|" ,
|
||||
ae->use,
|
||||
@ -568,7 +568,7 @@ BOOL ADDRESSBOOK_sendAddressbookTable( int cindex )
|
||||
break;
|
||||
}
|
||||
}else{
|
||||
/*银匀化卅中犯□正手冲徇及心匹霜月 */
|
||||
/*银匀化卅中犯□正手冲徇及心匹霜月 */
|
||||
char tmp[32];
|
||||
snprintf( tmp , sizeof( tmp ), "||||||||" );
|
||||
strcpysafe ( ADDRESSBOOK_returnstring + stringlen ,
|
||||
@ -642,12 +642,12 @@ BOOL ADDRESSBOOK_sendAddressbookTableOne( int cindex, int num )
|
||||
}
|
||||
|
||||
/*------------------------------------------------------------
|
||||
* 夫午勾及失玉伊旦皮永弁巨件玄伉毛} 侬 卞卅云允[
|
||||
* 仇木反平乓仿忡绣迕卅及匹弁仿奶失件玄卞霜耨允月方曰手恳割
|
||||
* 卅手及匹丐月 邰互丐月[
|
||||
* 娄醒
|
||||
* a ADDRESSBOOK_entry* 侬 卞仄凶中厌瞻 尺及禾奶件正
|
||||
* 忒曰袄
|
||||
* 夫午勾及失玉伊旦皮永弁巨件玄伉毛} 侬 卞卅云允[
|
||||
* 仇木反平乓仿忡绣迕卅及匹弁仿奶失件玄卞霜耨允月方曰手恳割
|
||||
* 卅手及匹丐月 邰互丐月[
|
||||
* 娄醒
|
||||
* a ADDRESSBOOK_entry* 侬 卞仄凶中厌瞻 尺及禾奶件正
|
||||
* 忒曰袄
|
||||
* char *
|
||||
------------------------------------------------------------*/
|
||||
char *ADDRESSBOOK_makeAddressbookString( ADDRESSBOOK_entry *a )
|
||||
@ -655,7 +655,7 @@ char *ADDRESSBOOK_makeAddressbookString( ADDRESSBOOK_entry *a )
|
||||
char work1[256], work2[256];
|
||||
|
||||
if( a->use == 0 ){
|
||||
/* 坞巨件玄伉分匀凶日坞 侬 */
|
||||
/* 坞巨件玄伉分匀凶日坞 侬 */
|
||||
ADDRESSBOOK_returnstring[0] = '\0';
|
||||
return ADDRESSBOOK_returnstring;
|
||||
}
|
||||
@ -672,13 +672,13 @@ char *ADDRESSBOOK_makeAddressbookString( ADDRESSBOOK_entry *a )
|
||||
}
|
||||
|
||||
/*------------------------------------------------------------
|
||||
* 侬 祭今木化中月失玉伊旦皮永弁巨件玄伉毛}厌瞻 卞卅云允[
|
||||
* 仇及瑛绊厌瞻 及use动陆及树 反敦僬卞卅月[
|
||||
* 娄醒
|
||||
* in char* 侬
|
||||
* a ADDRESSBOOK_entry* 犯□正毛璋户月赭
|
||||
* 忒曰袄
|
||||
* 勾友卞TRUE
|
||||
* 侬 祭今木化中月失玉伊旦皮永弁巨件玄伉毛}厌瞻 卞卅云允[
|
||||
* 仇及瑛绊厌瞻 及use动陆及树 反敦僬卞卅月[
|
||||
* 娄醒
|
||||
* in char* 侬
|
||||
* a ADDRESSBOOK_entry* 犯□正毛璋户月赭
|
||||
* 忒曰袄
|
||||
* 勾友卞TRUE
|
||||
------------------------------------------------------------*/
|
||||
BOOL ADDRESSBOOK_makeAddressbookEntry( char *in , ADDRESSBOOK_entry *a )
|
||||
{
|
||||
@ -886,7 +886,7 @@ BOOL ADDRESSBOOK_AutoaddAddressBook( int meindex, int toindex)
|
||||
//myblank = 79;
|
||||
//hisblank = 79;
|
||||
|
||||
if( hisblank < 0 || myblank < 0) { //"名片匣已满。"
|
||||
if( hisblank < 0 || myblank < 0) { //"名片匣已满。"
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
1984
char/char.c
1984
char/char.c
File diff suppressed because it is too large
Load Diff
@ -44,8 +44,8 @@ struct MissionInfo missionlist[MAXMISSION];
|
||||
int mission_num =0;
|
||||
struct MissionTable missiontable[MAXMISSIONTABLE];
|
||||
|
||||
//#define ANGELITEM 2884 //20701 //使者的信物 道具编号
|
||||
//#define HEROITEM 2885 //20702 //勇者的信物 道具编号
|
||||
//#define ANGELITEM 2884 //20701 //使者的信物 道具编号
|
||||
//#define HEROITEM 2885 //20702 //勇者的信物 道具编号
|
||||
|
||||
extern int AngelReady;
|
||||
|
||||
@ -150,7 +150,7 @@ void addAngelData( int angelindex, int heroindex, int mission, int flag)
|
||||
//void selectAngel( int charaindex)
|
||||
void selectAngel( int charaindex, int heroindex, int mission, int gm_cmd)
|
||||
{
|
||||
// gm_cmd 表示是否由GM指令产生,
|
||||
// gm_cmd 表示是否由GM指令产生,
|
||||
|
||||
//int heroindex =-1;
|
||||
int findindex, startindex;
|
||||
@ -161,36 +161,36 @@ void selectAngel( int charaindex, int heroindex, int mission, int gm_cmd)
|
||||
if( AngelReady <= 0 && gm_cmd == FALSE)
|
||||
return;
|
||||
|
||||
//sprintf( msg, " 使者资格检查: %s %s ", CHAR_getChar( charaindex, CHAR_CDKEY), CHAR_getChar( charaindex, CHAR_NAME));
|
||||
//sprintf( msg, " 使者资格检查: %s %s ", CHAR_getChar( charaindex, CHAR_CDKEY), CHAR_getChar( charaindex, CHAR_NAME));
|
||||
//print( msg);
|
||||
//LogAngel( msg);
|
||||
|
||||
// 天使条件检查
|
||||
// 天使条件检查
|
||||
if( gm_cmd == FALSE )
|
||||
{
|
||||
if( checkIfAngel( charaindex) != -1) // 是否天使或勇者
|
||||
if( checkIfAngel( charaindex) != -1) // 是否天使或勇者
|
||||
{
|
||||
//print(" ANGEL已经是天使或勇者了 ");
|
||||
//print(" ANGEL已经是天使或勇者了 ");
|
||||
return;
|
||||
}
|
||||
|
||||
if( CHAR_getInt( charaindex, CHAR_LV) < 30 || !NPC_EventCheckFlg( charaindex, 4 ) )
|
||||
{
|
||||
//print(" ANGEL资格不符 ");
|
||||
//print(" ANGEL资格不符 ");
|
||||
return;
|
||||
}
|
||||
|
||||
srand( time(NULL));
|
||||
if( rand()%3 == 0 ) // 天使的机率 2/3
|
||||
if( rand()%3 == 0 ) // 天使的机率 2/3
|
||||
{
|
||||
//print(" ANGEL机率检查不通过 ");
|
||||
//print(" ANGEL机率检查不通过 ");
|
||||
return;
|
||||
}
|
||||
}
|
||||
//print(" ANGEL决定 ");
|
||||
//print(" ANGEL决定 ");
|
||||
|
||||
|
||||
// 挑选勇者
|
||||
// 挑选勇者
|
||||
if( heroindex == -1 )
|
||||
{
|
||||
//heroindex = -1;
|
||||
@ -203,28 +203,28 @@ void selectAngel( int charaindex, int heroindex, int mission, int gm_cmd)
|
||||
if( !CHAR_CHECKINDEX( findindex) ) continue;
|
||||
if( CHAR_getInt( findindex, CHAR_WHICHTYPE ) != CHAR_TYPEPLAYER ) continue;
|
||||
if( findindex == charaindex ) continue;
|
||||
if( checkIfAngel( findindex) != -1) continue; // 是否天使或勇者
|
||||
if( CHAR_getInt( findindex, CHAR_LV) < 80 || !NPC_EventCheckFlg( findindex, 4 ) ) continue; // 勇者的条件
|
||||
if( rand()%3 == 0 ) continue; // 勇者的机率 2/3
|
||||
if( checkIfAngel( findindex) != -1) continue; // 是否天使或勇者
|
||||
if( CHAR_getInt( findindex, CHAR_LV) < 80 || !NPC_EventCheckFlg( findindex, 4 ) ) continue; // 勇者的条件
|
||||
if( rand()%3 == 0 ) continue; // 勇者的机率 2/3
|
||||
|
||||
heroindex = findindex;
|
||||
|
||||
//print(" ANGEL勇者决定 ");
|
||||
//print(" ANGEL勇者决定 ");
|
||||
|
||||
break;
|
||||
}
|
||||
if( heroindex < 0) {
|
||||
// sprintf( msg, " 没有找到勇者人选!! ");
|
||||
// sprintf( msg, " 没有找到勇者人选!! ");
|
||||
// print( msg);
|
||||
//LogAngel( msg);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// 决定任务
|
||||
// 决定任务
|
||||
if( mission == -1 )
|
||||
{
|
||||
int mlist[MAXMISSION]; // 符合条件的任务列表
|
||||
int mlist[MAXMISSION]; // 符合条件的任务列表
|
||||
char eventlist[1024];
|
||||
char buf[64];
|
||||
int i, j, mindex =0;
|
||||
@ -235,13 +235,13 @@ void selectAngel( int charaindex, int heroindex, int mission, int gm_cmd)
|
||||
if( missionlist[i].id <= 0) continue;
|
||||
if( CHAR_getInt( heroindex, CHAR_LV) < missionlist[i].level )
|
||||
continue;
|
||||
strcpy( eventlist, missionlist[i].eventflag); // 检查必要旗标
|
||||
strcpy( eventlist, missionlist[i].eventflag); // 检查必要旗标
|
||||
j =0;
|
||||
while(1) {
|
||||
j++;
|
||||
if( getStringFromIndexWithDelim( eventlist, ";", j, buf, sizeof(buf)) == FALSE )
|
||||
break;
|
||||
if( buf[0] != '!') { // 必要旗标或禁止旗标
|
||||
if( buf[0] != '!') { // 必要旗标或禁止旗标
|
||||
if( !NPC_EventCheckFlg( heroindex, atoi(buf) )) {
|
||||
checked = FALSE;
|
||||
break;
|
||||
@ -261,7 +261,7 @@ void selectAngel( int charaindex, int heroindex, int mission, int gm_cmd)
|
||||
}
|
||||
}
|
||||
if( mindex <= 0 ) {
|
||||
//sprintf( msg, " 找不到合适的任务 ");
|
||||
//sprintf( msg, " 找不到合适的任务 ");
|
||||
//print( msg);
|
||||
//LogAngel( msg);
|
||||
return;
|
||||
@ -271,20 +271,20 @@ void selectAngel( int charaindex, int heroindex, int mission, int gm_cmd)
|
||||
}
|
||||
|
||||
|
||||
addAngelData( charaindex, heroindex, mission, MISSION_WAIT_ANSWER); // 传到AC
|
||||
addAngelData( charaindex, heroindex, mission, MISSION_WAIT_ANSWER); // 传到AC
|
||||
|
||||
// 清除旗标 event8 224~255 为精灵召唤专用
|
||||
// 清除旗标 event8 224~255 为精灵召唤专用
|
||||
CHAR_setInt( charaindex, CHAR_NOWEVENT8, 0);
|
||||
CHAR_setInt( charaindex, CHAR_ENDEVENT8, 0);
|
||||
CHAR_setInt( heroindex, CHAR_NOWEVENT8, 0);
|
||||
CHAR_setInt( heroindex, CHAR_ENDEVENT8, 0);
|
||||
|
||||
if( gm_cmd == FALSE )
|
||||
AngelReady = 0; // 清除缺额
|
||||
AngelReady = 0; // 清除缺额
|
||||
|
||||
{
|
||||
//sprintf( msg, " 产生 %s 天使候补: %s %s Lv:%d 勇者候补: %s %s Lv:%d 任务:%d ci=%d hi=%d ",
|
||||
//gm_cmd ? ("(GM指令)") : (" "),
|
||||
//sprintf( msg, " 产生 %s 天使候补: %s %s Lv:%d 勇者候补: %s %s Lv:%d 任务:%d ci=%d hi=%d ",
|
||||
//gm_cmd ? ("(GM指令)") : (" "),
|
||||
//CHAR_getChar( charaindex, CHAR_CDKEY), CHAR_getChar( charaindex, CHAR_NAME), CHAR_getInt( charaindex, CHAR_LV),
|
||||
//CHAR_getChar( heroindex, CHAR_CDKEY), CHAR_getChar( heroindex, CHAR_NAME), CHAR_getInt( heroindex, CHAR_LV),
|
||||
//mission, charaindex, heroindex);
|
||||
@ -312,14 +312,14 @@ int AngelCreate( int angelindex)
|
||||
|
||||
if( !CHAR_CHECKINDEX( angelindex)) return FALSE;
|
||||
|
||||
print(" 天使答应了!! ");
|
||||
print(" 天使答应了!! ");
|
||||
|
||||
mindex = checkIfAngel( angelindex);
|
||||
if( mindex == -1 || missiontable[mindex].flag == MISSION_TIMEOVER ) {
|
||||
//print("\n ANGEL错误!!Table逾时或无资料??:%d ", angelindex );
|
||||
CHAR_talkToCli( angelindex, -1, "很抱歉,你太晚回答,已经逾时了。", CHAR_COLORYELLOW);
|
||||
//print("\n ANGEL错误!!Table逾时或无资料??:%d ", angelindex );
|
||||
CHAR_talkToCli( angelindex, -1, "很抱歉,你太晚回答,已经逾时了。", CHAR_COLORYELLOW);
|
||||
|
||||
sprintf( msgbuf, " 回答逾时或无资料 i:%d 使者:%s %s ", mindex, CHAR_getChar( angelindex, CHAR_CDKEY), CHAR_getChar( angelindex, CHAR_NAME));
|
||||
sprintf( msgbuf, " 回答逾时或无资料 i:%d 使者:%s %s ", mindex, CHAR_getChar( angelindex, CHAR_CDKEY), CHAR_getChar( angelindex, CHAR_NAME));
|
||||
print( msgbuf);
|
||||
LogAngel( msgbuf);
|
||||
|
||||
@ -327,12 +327,12 @@ int AngelCreate( int angelindex)
|
||||
}
|
||||
|
||||
if( missiontable[mindex].flag != MISSION_WAIT_ANSWER ) {
|
||||
print(" 旗标不符:%d ", missiontable[mindex].flag);
|
||||
print(" 旗标不符:%d ", missiontable[mindex].flag);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if( CHAR_findEmptyItemBoxNo( angelindex ) < 2 ){
|
||||
CHAR_talkToCli( angelindex, -1, "空间栏位不足。至少要有两个空道具栏位。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( angelindex, -1, "空间栏位不足。至少要有两个空道具栏位。", CHAR_COLORYELLOW);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -342,7 +342,7 @@ int AngelCreate( int angelindex)
|
||||
angeltokenindex = ITEM_makeItemAndRegist( ANGELITEM );
|
||||
if( angeltokenindex != -1 ){
|
||||
/*if( ITEM_getInt( angeltokenindex, ITEM_TYPE) != ITEM_ANGELTOKEN) {
|
||||
print(" 制作使者信物失败 ");
|
||||
print(" 制作使者信物失败 ");
|
||||
ITEM_endExistItemsOne( angeltokenindex);
|
||||
return;
|
||||
}*/
|
||||
@ -355,8 +355,8 @@ int AngelCreate( int angelindex)
|
||||
//sprintf( msgbuf, "%s(%s)", ITEM_getChar( angeltokenindex, ITEM_NAME), CHAR_getChar( angelindex, CHAR_NAME ) );
|
||||
//ITEM_setChar( angeltokenindex, ITEM_NAME, msgbuf);
|
||||
//ITEM_setChar( angeltokenindex, ITEM_SECRETNAME, msgbuf);
|
||||
//sprintf( msgbuf, "这是使者 %s 与勇者 %s 专属的信物", CHAR_getChar( angelindex, CHAR_NAME), heroname );
|
||||
sprintf( msgbuf, "精灵使者 %s 的信物,装备後不遇敌。", CHAR_getChar( angelindex, CHAR_NAME) );
|
||||
//sprintf( msgbuf, "这是使者 %s 与勇者 %s 专属的信物", CHAR_getChar( angelindex, CHAR_NAME), heroname );
|
||||
sprintf( msgbuf, "精灵使者 %s 的信物,装备後不遇敌。", CHAR_getChar( angelindex, CHAR_NAME) );
|
||||
ITEM_setChar( angeltokenindex, ITEM_EFFECTSTRING, msgbuf);
|
||||
|
||||
emptyitem1 = CHAR_addItemSpecificItemIndex( angelindex, angeltokenindex);
|
||||
@ -365,23 +365,23 @@ int AngelCreate( int angelindex)
|
||||
CHAR_getChar( angelindex, CHAR_NAME ),
|
||||
CHAR_getChar( angelindex, CHAR_CDKEY ),
|
||||
angeltokenindex,
|
||||
"AddItem(制作道具 使者信物)",
|
||||
"AddItem(制作道具 使者信物)",
|
||||
CHAR_getInt( angelindex,CHAR_FLOOR),
|
||||
CHAR_getInt( angelindex,CHAR_X ),
|
||||
CHAR_getInt( angelindex,CHAR_Y ),
|
||||
ITEM_getChar( angeltokenindex, ITEM_UNIQUECODE),
|
||||
ITEM_getChar( angeltokenindex, ITEM_NAME),
|
||||
ITEM_getInt( angeltokenindex, ITEM_ID) );
|
||||
CHAR_talkToCli( angelindex, -1,"得到使者的信物。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( angelindex, -1,"得到使者的信物。", CHAR_COLORYELLOW);
|
||||
}else{
|
||||
print("制作使者的信物失败。" );
|
||||
print("制作使者的信物失败。" );
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
herotokenindex = ITEM_makeItemAndRegist( HEROITEM );
|
||||
if( herotokenindex != -1 ){
|
||||
/*if( ITEM_getInt( herotokenindex, ITEM_TYPE) != ITEM_HEROTOKEN) {
|
||||
print(" 制作勇者信物失败 ");
|
||||
print(" 制作勇者信物失败 ");
|
||||
ITEM_endExistItemsOne( herotokenindex);
|
||||
ITEM_endExistItemsOne( angeltokenindex);
|
||||
CHAR_sendItemDataOne( angelindex, emptyitem1);
|
||||
@ -395,8 +395,8 @@ int AngelCreate( int angelindex)
|
||||
//sprintf( msgbuf, "%s(%s)", ITEM_getChar( herotokenindex, ITEM_NAME), heroname );
|
||||
//ITEM_setChar( herotokenindex, ITEM_NAME, msgbuf);
|
||||
//ITEM_setChar( herotokenindex, ITEM_SECRETNAME, msgbuf);
|
||||
//sprintf( msgbuf, "这是勇者 %s 与使者 %s 专属的信物", heroname, CHAR_getChar( angelindex, CHAR_NAME) );
|
||||
sprintf( msgbuf, "勇者 %s 的信物,使者使用可传送至勇者身边。", heroname );
|
||||
//sprintf( msgbuf, "这是勇者 %s 与使者 %s 专属的信物", heroname, CHAR_getChar( angelindex, CHAR_NAME) );
|
||||
sprintf( msgbuf, "勇者 %s 的信物,使者使用可传送至勇者身边。", heroname );
|
||||
ITEM_setChar( herotokenindex, ITEM_EFFECTSTRING, msgbuf);
|
||||
|
||||
emptyitem2 = CHAR_addItemSpecificItemIndex( angelindex, herotokenindex);
|
||||
@ -406,31 +406,31 @@ int AngelCreate( int angelindex)
|
||||
CHAR_getChar( angelindex, CHAR_NAME ),
|
||||
CHAR_getChar( angelindex, CHAR_CDKEY ),
|
||||
herotokenindex,
|
||||
"AddItem(制作道具 勇者信物)",
|
||||
"AddItem(制作道具 勇者信物)",
|
||||
CHAR_getInt( angelindex,CHAR_FLOOR),
|
||||
CHAR_getInt( angelindex,CHAR_X ),
|
||||
CHAR_getInt( angelindex,CHAR_Y ),
|
||||
ITEM_getChar( herotokenindex, ITEM_UNIQUECODE),
|
||||
ITEM_getChar( herotokenindex, ITEM_NAME),
|
||||
ITEM_getInt( herotokenindex, ITEM_ID) );
|
||||
CHAR_talkToCli( angelindex, -1,"得到勇者的信物。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( angelindex, -1,"得到勇者的信物。", CHAR_COLORYELLOW);
|
||||
}else{
|
||||
print("制作勇者的信物失败。" );
|
||||
print("制作勇者的信物失败。" );
|
||||
ITEM_endExistItemsOne( angeltokenindex);
|
||||
CHAR_sendItemDataOne( angelindex, emptyitem1);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// 更新至AC Server
|
||||
// 更新至AC Server
|
||||
//sprintf( nameinfo, "%s:%s", CHAR_getChar( angelindex, CHAR_CDKEY), CHAR_getChar( angelindex, CHAR_NAME ) );
|
||||
sprintf( msgbuf, "%s|%d", missiontable[mindex].angelinfo, missionlist[missiontable[mindex].mission].limittime );
|
||||
saacproto_ACMissionTable_send( acfd, MISSION_DOING, 4, msgbuf, "");
|
||||
|
||||
//CHAR_talkToCli( angelindex, -1, "天之声:非常感谢你答应帮忙,那我就将信物交给你了,请将勇者的信物转交给勇者。", CHAR_COLORYELLOW);
|
||||
//CHAR_talkToCli( angelindex, -1, "天之声:非常感谢你答应帮忙,那我就将信物交给你了,请将勇者的信物转交给勇者。", CHAR_COLORYELLOW);
|
||||
|
||||
lssproto_WN_send( getfdFromCharaIndex(angelindex), WINDOW_MESSAGETYPE_MESSAGE,
|
||||
WINDOW_BUTTONTYPE_YES, -1, -1,
|
||||
"非常感谢你答应帮忙,那我就将信物交给你了,请将勇者的信物转交给勇者。");
|
||||
"非常感谢你答应帮忙,那我就将信物交给你了,请将勇者的信物转交给勇者。");
|
||||
|
||||
#ifdef _ANGLE_EMAIL
|
||||
int maxchar = CHAR_getPlayerMaxNum();
|
||||
@ -444,13 +444,13 @@ int AngelCreate( int angelindex)
|
||||
|
||||
if( ADDRESSBOOK_AutoaddAddressBook( angelindex, i) == TRUE ){
|
||||
char token[256];
|
||||
sprintf( token, "系统自动为你和英雄 %s 交换名片。", CHAR_getChar( i, CHAR_NAME ));
|
||||
sprintf( token, "系统自动为你和英雄 %s 交换名片。", CHAR_getChar( i, CHAR_NAME ));
|
||||
CHAR_talkToCli( angelindex, -1, token, CHAR_COLORRED);
|
||||
}
|
||||
|
||||
if( ADDRESSBOOK_AutoaddAddressBook( i, angelindex) == TRUE ){
|
||||
char token[256];
|
||||
sprintf( token, "系统自动为你和使者 %s 交换名片。", CHAR_getChar( angelindex, CHAR_NAME ));
|
||||
sprintf( token, "系统自动为你和使者 %s 交换名片。", CHAR_getChar( angelindex, CHAR_NAME ));
|
||||
CHAR_talkToCli( i, -1, token, CHAR_COLORRED);
|
||||
}
|
||||
|
||||
@ -458,7 +458,7 @@ int AngelCreate( int angelindex)
|
||||
}
|
||||
#endif
|
||||
|
||||
sprintf( msgbuf, " 使者答应帮忙了 i:%d 使者:%s 勇者:%s ci=%d ", mindex, missiontable[mindex].angelinfo, missiontable[mindex].heroinfo, angelindex);
|
||||
sprintf( msgbuf, " 使者答应帮忙了 i:%d 使者:%s 勇者:%s ci=%d ", mindex, missiontable[mindex].angelinfo, missiontable[mindex].heroinfo, angelindex);
|
||||
print( msgbuf);
|
||||
LogAngel( msgbuf);
|
||||
|
||||
@ -466,7 +466,7 @@ int AngelCreate( int angelindex)
|
||||
}
|
||||
|
||||
|
||||
// 使用使者信物时
|
||||
// 使用使者信物时
|
||||
void Use_AngelToken( int charaindex, int toindex, int haveitemindex )
|
||||
{
|
||||
int itemindex;
|
||||
@ -475,7 +475,7 @@ void Use_AngelToken( int charaindex, int toindex, int haveitemindex )
|
||||
char msg[1024];
|
||||
char tokenbuf[64];
|
||||
|
||||
print(" 使用使者信物 ");
|
||||
print(" 使用使者信物 ");
|
||||
|
||||
if( !CHAR_CHECKINDEX( charaindex) ) return;
|
||||
itemindex = CHAR_getItemIndex( charaindex, haveitemindex);
|
||||
@ -487,53 +487,53 @@ void Use_AngelToken( int charaindex, int toindex, int haveitemindex )
|
||||
|
||||
if( mindex == -1 ||
|
||||
( strcmp( nameinfo, ITEM_getChar( itemindex, ITEM_ANGELINFO)) && strcmp( nameinfo, ITEM_getChar( itemindex, ITEM_HEROINFO)) ) ) {
|
||||
// 路人甲使用时
|
||||
CHAR_talkToCli( charaindex, -1, "这并不是属於你的信物,不可随便使用喔。", CHAR_COLORRED);
|
||||
// 路人甲使用时
|
||||
CHAR_talkToCli( charaindex, -1, "这并不是属於你的信物,不可随便使用喔。", CHAR_COLORRED);
|
||||
return;
|
||||
}
|
||||
|
||||
if( strcmp( ITEM_getChar( itemindex, ITEM_ANGELINFO), missiontable[mindex].angelinfo)
|
||||
|| strcmp( ITEM_getChar( itemindex, ITEM_HEROINFO), missiontable[mindex].heroinfo) ) {
|
||||
|
||||
CHAR_talkToCli( charaindex, -1, "这是无用的信物,还是丢掉吧。", CHAR_COLORRED);
|
||||
CHAR_talkToCli( charaindex, -1, "这是无用的信物,还是丢掉吧。", CHAR_COLORRED);
|
||||
return;
|
||||
}
|
||||
|
||||
if( !strcmp( nameinfo, missiontable[mindex].angelinfo) ) { // 使者使用时
|
||||
if( !strcmp( nameinfo, missiontable[mindex].angelinfo) ) { // 使者使用时
|
||||
|
||||
int lefttime, hour, min;
|
||||
lefttime = missiontable[mindex].time + missiontable[mindex].limittime*60*60 - (int)time(NULL);
|
||||
hour = lefttime / (60*60);
|
||||
min = (lefttime % (60*60)) / 60;
|
||||
if( missiontable[mindex].flag == MISSION_DOING ) {
|
||||
// 显示任务资料
|
||||
// 显示任务资料
|
||||
getStringFromIndexWithDelim( missiontable[mindex].heroinfo, ":", 2, tokenbuf, sizeof(tokenbuf));
|
||||
sprintf( msg, "你的使命是将勇者的信物交给 %s ,%s,时间还剩余%d小时%d分。",
|
||||
sprintf( msg, "你的使命是将勇者的信物交给 %s ,%s,时间还剩余%d小时%d分。",
|
||||
tokenbuf, missionlist[missiontable[mindex].mission].detail, hour, min);
|
||||
CHAR_talkToCli( charaindex, -1, msg, CHAR_COLORRED);
|
||||
}
|
||||
else if( missiontable[mindex].flag == MISSION_HERO_COMPLETE ) {
|
||||
// 可以去领奖了
|
||||
// 可以去领奖了
|
||||
getStringFromIndexWithDelim( missiontable[mindex].heroinfo, ":", 2, tokenbuf, sizeof(tokenbuf));
|
||||
sprintf( msg, "勇者 %s 的使命已经完成了,你可以去领奖了,时间还剩余%d小时%d分。",
|
||||
sprintf( msg, "勇者 %s 的使命已经完成了,你可以去领奖了,时间还剩余%d小时%d分。",
|
||||
tokenbuf, hour, min);
|
||||
CHAR_talkToCli( charaindex, -1, msg, CHAR_COLORRED);
|
||||
}
|
||||
else if( missiontable[mindex].flag == MISSION_TIMEOVER ) {
|
||||
// 时间超过了
|
||||
sprintf( msg, "很可惜,使者和勇者并没有在时限内完成使命,下次再加油吧。");
|
||||
// 时间超过了
|
||||
sprintf( msg, "很可惜,使者和勇者并没有在时限内完成使命,下次再加油吧。");
|
||||
CHAR_talkToCli( charaindex, -1, msg, CHAR_COLORRED);
|
||||
}
|
||||
return;
|
||||
}
|
||||
else if( !strcmp( nameinfo, missiontable[mindex].heroinfo) ) { // 勇者使用时
|
||||
// 传送至使者身旁
|
||||
else if( !strcmp( nameinfo, missiontable[mindex].heroinfo) ) { // 勇者使用时
|
||||
// 传送至使者身旁
|
||||
int maxchar, i;
|
||||
char cdkey[64], name[64];
|
||||
int fl =0, fx =0, fy =0;
|
||||
|
||||
if( checkUnlawWarpFloor( CHAR_getInt( charaindex, CHAR_FLOOR) ) ) {
|
||||
CHAR_talkToCli( charaindex, -1, "你所在的地方无法传送。", CHAR_COLORYELLOW );
|
||||
CHAR_talkToCli( charaindex, -1, "你所在的地方无法传送。", CHAR_COLORYELLOW );
|
||||
return;
|
||||
}
|
||||
|
||||
@ -553,7 +553,7 @@ void Use_AngelToken( int charaindex, int toindex, int haveitemindex )
|
||||
fy = CHAR_getInt( i, CHAR_Y);
|
||||
|
||||
if( checkUnlawWarpFloor( fl) ) {
|
||||
CHAR_talkToCli( charaindex, -1, "对象所在的地方无法传送。", CHAR_COLORYELLOW );
|
||||
CHAR_talkToCli( charaindex, -1, "对象所在的地方无法传送。", CHAR_COLORYELLOW );
|
||||
return;
|
||||
}
|
||||
|
||||
@ -561,19 +561,19 @@ void Use_AngelToken( int charaindex, int toindex, int haveitemindex )
|
||||
}
|
||||
if( fl <= 0 )
|
||||
{
|
||||
sprintf( msg, "使者 %s 目前不在线上或不在本伺服器上。", name);
|
||||
sprintf( msg, "使者 %s 目前不在线上或不在本伺服器上。", name);
|
||||
CHAR_talkToCli( charaindex, -1, msg, CHAR_COLORRED);
|
||||
return;
|
||||
}
|
||||
|
||||
sprintf( msg, "传送至使者 %s 身边。", name);
|
||||
sprintf( msg, "传送至使者 %s 身边。", name);
|
||||
CHAR_talkToCli( charaindex, -1, msg, CHAR_COLORYELLOW);
|
||||
CHAR_warpToSpecificPoint( charaindex, fl, fx, fy);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// 使用勇者信物时
|
||||
// 使用勇者信物时
|
||||
void Use_HeroToken( int charaindex, int toindex, int haveitemindex )
|
||||
{
|
||||
int itemindex;
|
||||
@ -581,7 +581,7 @@ void Use_HeroToken( int charaindex, int toindex, int haveitemindex )
|
||||
char nameinfo[64];
|
||||
char msg[1024];
|
||||
|
||||
// print(" 使用勇者信物 ");
|
||||
// print(" 使用勇者信物 ");
|
||||
|
||||
if( !CHAR_CHECKINDEX( charaindex) ) return;
|
||||
itemindex = CHAR_getItemIndex( charaindex, haveitemindex);
|
||||
@ -593,20 +593,20 @@ void Use_HeroToken( int charaindex, int toindex, int haveitemindex )
|
||||
|
||||
if( mindex == -1 ||
|
||||
( strcmp( nameinfo, ITEM_getChar( itemindex, ITEM_ANGELINFO)) && strcmp( nameinfo, ITEM_getChar( itemindex, ITEM_HEROINFO)) ) ) {
|
||||
// 路人甲使用时
|
||||
CHAR_talkToCli( charaindex, -1, "这并不是属於你的信物,不可随便使用喔。", CHAR_COLORRED);
|
||||
// 路人甲使用时
|
||||
CHAR_talkToCli( charaindex, -1, "这并不是属於你的信物,不可随便使用喔。", CHAR_COLORRED);
|
||||
return;
|
||||
}
|
||||
|
||||
if( strcmp( ITEM_getChar( itemindex, ITEM_ANGELINFO), missiontable[mindex].angelinfo)
|
||||
|| strcmp( ITEM_getChar( itemindex, ITEM_HEROINFO), missiontable[mindex].heroinfo) ){
|
||||
|
||||
CHAR_talkToCli( charaindex, -1, "这是无用的信物,还是丢掉吧。", CHAR_COLORRED);
|
||||
CHAR_talkToCli( charaindex, -1, "这是无用的信物,还是丢掉吧。", CHAR_COLORRED);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if( !strcmp( nameinfo, missiontable[mindex].heroinfo) ) { // 勇者使用时
|
||||
if( !strcmp( nameinfo, missiontable[mindex].heroinfo) ) { // 勇者使用时
|
||||
|
||||
int lefttime, hour, min;
|
||||
lefttime = missiontable[mindex].time + missiontable[mindex].limittime*60*60 - (int)time(NULL);
|
||||
@ -614,44 +614,44 @@ void Use_HeroToken( int charaindex, int toindex, int haveitemindex )
|
||||
min = (lefttime % (60*60)) / 60;
|
||||
|
||||
if( missiontable[mindex].flag == MISSION_DOING ) {
|
||||
// 显示任务资料
|
||||
sprintf( msg, "你的使命是 %s,时间还剩余%d小时%d分。",
|
||||
// 显示任务资料
|
||||
sprintf( msg, "你的使命是 %s,时间还剩余%d小时%d分。",
|
||||
missionlist[missiontable[mindex].mission].detail, hour, min);
|
||||
CHAR_talkToCli( charaindex, -1, msg, CHAR_COLORRED);
|
||||
}
|
||||
else if( missiontable[mindex].flag == MISSION_HERO_COMPLETE ) {
|
||||
// 可以去领奖了
|
||||
sprintf( msg, "你的使命已经完成了,可以去领奖了,时间还剩余%d小时%d分。",
|
||||
// 可以去领奖了
|
||||
sprintf( msg, "你的使命已经完成了,可以去领奖了,时间还剩余%d小时%d分。",
|
||||
hour, min);
|
||||
CHAR_talkToCli( charaindex, -1, msg, CHAR_COLORRED);
|
||||
}
|
||||
else if( missiontable[mindex].flag == MISSION_TIMEOVER ) {
|
||||
// 时间超过了
|
||||
sprintf( msg, "很可惜,使者和勇者并没有在时限内完成使命,下次再加油吧。");
|
||||
// 时间超过了
|
||||
sprintf( msg, "很可惜,使者和勇者并没有在时限内完成使命,下次再加油吧。");
|
||||
CHAR_talkToCli( charaindex, -1, msg, CHAR_COLORRED);
|
||||
}
|
||||
return;
|
||||
|
||||
}
|
||||
else if( !strcmp( nameinfo, missiontable[mindex].angelinfo) ) { // 使者使用时
|
||||
// 传送至勇者身旁
|
||||
else if( !strcmp( nameinfo, missiontable[mindex].angelinfo) ) { // 使者使用时
|
||||
// 传送至勇者身旁
|
||||
int maxchar, i;
|
||||
char cdkey[64], name[64];
|
||||
int fl =0, fx =0, fy =0;
|
||||
|
||||
if( CHAR_getWorkInt( charaindex, CHAR_WORKPARTYMODE) != CHAR_PARTY_NONE ) {
|
||||
CHAR_talkToCli( charaindex, -1, "组队中无法传送。", CHAR_COLORYELLOW );
|
||||
CHAR_talkToCli( charaindex, -1, "组队中无法传送。", CHAR_COLORYELLOW );
|
||||
return;
|
||||
}
|
||||
|
||||
if( checkUnlawWarpFloor( CHAR_getInt( charaindex, CHAR_FLOOR) ) ) {
|
||||
CHAR_talkToCli( charaindex, -1, "你所在的地方无法传送。", CHAR_COLORYELLOW );
|
||||
CHAR_talkToCli( charaindex, -1, "你所在的地方无法传送。", CHAR_COLORYELLOW );
|
||||
return;
|
||||
}
|
||||
|
||||
//if( CHAR_CheckInItemForWares( charaindex, 0) == FALSE ){
|
||||
if( CheckDropatLogout( charaindex) == TRUE ) {
|
||||
CHAR_talkToCli( charaindex, -1, "携带登出後消失的道具时无法使用。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( charaindex, -1, "携带登出後消失的道具时无法使用。", CHAR_COLORYELLOW);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -671,7 +671,7 @@ void Use_HeroToken( int charaindex, int toindex, int haveitemindex )
|
||||
fy = CHAR_getInt( i, CHAR_Y);
|
||||
|
||||
if( checkUnlawWarpFloor( fl) ) {
|
||||
CHAR_talkToCli( charaindex, -1, "对象所在的地方无法传送过去。", CHAR_COLORYELLOW );
|
||||
CHAR_talkToCli( charaindex, -1, "对象所在的地方无法传送过去。", CHAR_COLORYELLOW );
|
||||
return;
|
||||
}
|
||||
|
||||
@ -679,18 +679,18 @@ void Use_HeroToken( int charaindex, int toindex, int haveitemindex )
|
||||
}
|
||||
if( fl <= 0 )
|
||||
{
|
||||
sprintf( msg, "勇者 %s 目前不在线上或不在本伺服器上。", name);
|
||||
sprintf( msg, "勇者 %s 目前不在线上或不在本伺服器上。", name);
|
||||
CHAR_talkToCli( charaindex, -1, msg, CHAR_COLORRED);
|
||||
return;
|
||||
}
|
||||
|
||||
sprintf( msg, "传送至勇者 %s 身边。", name);
|
||||
sprintf( msg, "传送至勇者 %s 身边。", name);
|
||||
CHAR_talkToCli( charaindex, -1, msg, CHAR_COLORYELLOW);
|
||||
CHAR_warpToSpecificPoint( charaindex, fl, fx, fy);
|
||||
|
||||
}
|
||||
else { // 路人甲使用时
|
||||
CHAR_talkToCli( charaindex, -1, "这并不是属於你的信物,不可随便使用喔。", CHAR_COLORRED);
|
||||
else { // 路人甲使用时
|
||||
CHAR_talkToCli( charaindex, -1, "这并不是属於你的信物,不可随便使用喔。", CHAR_COLORRED);
|
||||
return;
|
||||
}
|
||||
|
||||
|
522
char/char_base.c
522
char/char_base.c
File diff suppressed because it is too large
Load Diff
246
char/char_data.c
246
char/char_data.c
@ -17,7 +17,7 @@
|
||||
#include "log.h"
|
||||
#include "pet.h"
|
||||
#include "enemy.h"
|
||||
#ifdef _PERSONAL_FAME // Arminius: 家族个人声望
|
||||
#ifdef _PERSONAL_FAME // Arminius: 家族个人声望
|
||||
#include "char_base.h"
|
||||
#include "configfile.h"
|
||||
#endif
|
||||
@ -47,73 +47,73 @@ typedef struct tagdefaultCharcterGet
|
||||
static defaultCharacterGet CHAR_defaultCharacterGet[]=
|
||||
{
|
||||
/* CHAR_DEFAULTPLAYER */
|
||||
//阂间裆ㄠ
|
||||
//阂间裆ㄠ
|
||||
{SPR_001em,&player,&lvplayer00,CHAR_IMAGETYPE_CHILDBOY},
|
||||
{SPR_002em,&player,&lvplayer00,CHAR_IMAGETYPE_CHILDBOY},
|
||||
{SPR_003em,&player,&lvplayer00,CHAR_IMAGETYPE_CHILDBOY},
|
||||
{SPR_004em,&player,&lvplayer00,CHAR_IMAGETYPE_CHILDBOY},
|
||||
|
||||
//剂 ㄠ
|
||||
//剂 ㄠ
|
||||
{SPR_011em,&player,&lvplayer00,CHAR_IMAGETYPE_BOY},
|
||||
{SPR_012em,&player,&lvplayer00,CHAR_IMAGETYPE_BOY},
|
||||
{SPR_013em,&player,&lvplayer00,CHAR_IMAGETYPE_BOY},
|
||||
{SPR_014em,&player,&lvplayer00,CHAR_IMAGETYPE_BOY},
|
||||
|
||||
//剂 ㄡ
|
||||
//剂 ㄡ
|
||||
{SPR_021em,&player,&lvplayer00,CHAR_IMAGETYPE_BOY},
|
||||
{SPR_022em,&player,&lvplayer00,CHAR_IMAGETYPE_BOY},
|
||||
{SPR_023em,&player,&lvplayer00,CHAR_IMAGETYPE_BOY},
|
||||
{SPR_024em,&player,&lvplayer00,CHAR_IMAGETYPE_BOY},
|
||||
|
||||
//剂 ㄢ
|
||||
//剂 ㄢ
|
||||
{SPR_031em,&player,&lvplayer00,CHAR_IMAGETYPE_BOY},
|
||||
{SPR_032em,&player,&lvplayer00,CHAR_IMAGETYPE_BOY},
|
||||
{SPR_033em,&player,&lvplayer00,CHAR_IMAGETYPE_BOY},
|
||||
{SPR_034em,&player,&lvplayer00,CHAR_IMAGETYPE_BOY},
|
||||
|
||||
//敛 ㄠ
|
||||
//敛 ㄠ
|
||||
{SPR_041em,&player,&lvplayer00,CHAR_IMAGETYPE_MAN},
|
||||
{SPR_042em,&player,&lvplayer00,CHAR_IMAGETYPE_MAN},
|
||||
{SPR_043em,&player,&lvplayer00,CHAR_IMAGETYPE_MAN},
|
||||
{SPR_044em,&player,&lvplayer00,CHAR_IMAGETYPE_MAN},
|
||||
|
||||
//敛 ㄡ
|
||||
//敛 ㄡ
|
||||
{SPR_051em,&player,&lvplayer00,CHAR_IMAGETYPE_MAN},
|
||||
{SPR_052em,&player,&lvplayer00,CHAR_IMAGETYPE_MAN},
|
||||
{SPR_053em,&player,&lvplayer00,CHAR_IMAGETYPE_MAN},
|
||||
{SPR_054em,&player,&lvplayer00,CHAR_IMAGETYPE_MAN},
|
||||
|
||||
//阂间辉ㄠ
|
||||
//阂间辉ㄠ
|
||||
{SPR_061em,&player,&lvplayer00,CHAR_IMAGETYPE_CHILDGIRL},
|
||||
{SPR_062em,&player,&lvplayer00,CHAR_IMAGETYPE_CHILDGIRL},
|
||||
{SPR_063em,&player,&lvplayer00,CHAR_IMAGETYPE_CHILDGIRL},
|
||||
{SPR_064em,&player,&lvplayer00,CHAR_IMAGETYPE_CHILDGIRL},
|
||||
|
||||
//剂辉ㄠ
|
||||
//剂辉ㄠ
|
||||
{SPR_071em,&player,&lvplayer00,CHAR_IMAGETYPE_GIRL},
|
||||
{SPR_072em,&player,&lvplayer00,CHAR_IMAGETYPE_GIRL},
|
||||
{SPR_073em,&player,&lvplayer00,CHAR_IMAGETYPE_GIRL},
|
||||
{SPR_074em,&player,&lvplayer00,CHAR_IMAGETYPE_GIRL},
|
||||
|
||||
//剂辉ㄡ
|
||||
//剂辉ㄡ
|
||||
{SPR_081em,&player,&lvplayer00,CHAR_IMAGETYPE_GIRL},
|
||||
{SPR_082em,&player,&lvplayer00,CHAR_IMAGETYPE_GIRL},
|
||||
{SPR_083em,&player,&lvplayer00,CHAR_IMAGETYPE_GIRL},
|
||||
{SPR_084em,&player,&lvplayer00,CHAR_IMAGETYPE_GIRL},
|
||||
|
||||
//剂辉ㄢ
|
||||
//剂辉ㄢ
|
||||
{SPR_091em,&player,&lvplayer00,CHAR_IMAGETYPE_GIRL},
|
||||
{SPR_092em,&player,&lvplayer00,CHAR_IMAGETYPE_GIRL},
|
||||
{SPR_093em,&player,&lvplayer00,CHAR_IMAGETYPE_GIRL},
|
||||
{SPR_094em,&player,&lvplayer00,CHAR_IMAGETYPE_GIRL},
|
||||
|
||||
//辉岭ㄠ
|
||||
//辉岭ㄠ
|
||||
{SPR_101em,&player,&lvplayer00,CHAR_IMAGETYPE_WOMAN},
|
||||
{SPR_102em,&player,&lvplayer00,CHAR_IMAGETYPE_WOMAN},
|
||||
{SPR_103em,&player,&lvplayer00,CHAR_IMAGETYPE_WOMAN},
|
||||
{SPR_104em,&player,&lvplayer00,CHAR_IMAGETYPE_WOMAN},
|
||||
|
||||
//辉岭ㄡ
|
||||
//辉岭ㄡ
|
||||
{SPR_111em,&player,&lvplayer00,CHAR_IMAGETYPE_WOMAN},
|
||||
{SPR_112em,&player,&lvplayer00,CHAR_IMAGETYPE_WOMAN},
|
||||
{SPR_113em,&player,&lvplayer00,CHAR_IMAGETYPE_WOMAN},
|
||||
@ -207,11 +207,11 @@ BOOL CHAR_checkPlayerImageNumber( int imagenumber)
|
||||
else return TRUE;
|
||||
}
|
||||
/*------------------------------------------------------------
|
||||
* 涌 飓 寞及民尼永弁
|
||||
* 涌 飓 寞及民尼永弁
|
||||
*
|
||||
* 涌 飓 寞反动票及白巧□穴永玄匹瑁引匀化中月
|
||||
* number = 窒谛 井
|
||||
* CG_CHR_MAKE_FACE + (number*100) + ( 缙 number * 25) + ( 寞 * 5 ) + 轼 寞
|
||||
* 涌 飓 寞反动票及白巧□穴永玄匹瑁引匀化中月
|
||||
* number = 窒谛 井
|
||||
* CG_CHR_MAKE_FACE + (number*100) + ( 缙 number * 25) + ( 寞 * 5 ) + 轼 寞
|
||||
*
|
||||
------------------------------------------------------------*/
|
||||
BOOL CHAR_checkFaceImageNumber( int imagenumber, int faceimagenumber)
|
||||
@ -224,9 +224,9 @@ BOOL CHAR_checkFaceImageNumber( int imagenumber, int faceimagenumber)
|
||||
if( image != number + color ) return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
// 平乓仿 飓 □皮伙[ㄠ 丐凶曰隶 ㄤ潘
|
||||
// 平乓仿 飓 □皮伙[ㄠ 丐凶曰隶 ㄤ潘
|
||||
int CHAR_eqimagetbl[][5]={
|
||||
// 允匹 {{{{ 轺徇 键 菰
|
||||
// 允匹 {{{{ 轺徇 键 菰
|
||||
{ SPR_001em,SPR_001ax,SPR_001cl,SPR_001sp,SPR_001bw },
|
||||
{ SPR_002em,SPR_002ax,SPR_002cl,SPR_002sp,SPR_002bw },
|
||||
{ SPR_003em,SPR_003ax,SPR_003cl,SPR_003sp,SPR_003bw },
|
||||
@ -313,18 +313,18 @@ int CHAR_eqimagetbl[][5]={
|
||||
};
|
||||
|
||||
/*------------------------------------------------------------
|
||||
* 隶 午 飓 寞井日蕙仄中 飓 寞毛 月[
|
||||
* 娄醒
|
||||
* basebaseimagenumber int 葭卞卅月 飓 寞
|
||||
* category ITEM_CATEGORY 失奶 丞及市 打伉
|
||||
* 忒曰袄
|
||||
* 蕙仄中 飓 寞[巨仿□及凛反}-1
|
||||
* 隶 午 飓 寞井日蕙仄中 飓 寞毛 月[
|
||||
* 娄醒
|
||||
* basebaseimagenumber int 葭卞卅月 飓 寞
|
||||
* category ITEM_CATEGORY 失奶 丞及市 打伉
|
||||
* 忒曰袄
|
||||
* 蕙仄中 飓 寞[巨仿□及凛反}-1
|
||||
------------------------------------------------------------*/
|
||||
int CHAR_getNewImagenumberFromEquip( int basebaseimagenumber,
|
||||
ITEM_CATEGORY category )
|
||||
{
|
||||
int i;
|
||||
/* ITEM_CATEGORY 民尼永弁 */
|
||||
/* ITEM_CATEGORY 民尼永弁 */
|
||||
if( category < 0 || category > arraysizeof(CHAR_eqimagetbl[0]) )
|
||||
return -1;
|
||||
for( i=0 ; i<arraysizeof(CHAR_eqimagetbl) ; i++ ){
|
||||
@ -338,10 +338,10 @@ int CHAR_getNewImagenumberFromEquip( int basebaseimagenumber,
|
||||
|
||||
|
||||
/*------------------------------------------------------------
|
||||
* hash 袄毛菲户月[
|
||||
* 娄醒
|
||||
* 忒曰袄
|
||||
* 卅仄
|
||||
* hash 袄毛菲户月[
|
||||
* 娄醒
|
||||
* 忒曰袄
|
||||
* 卅仄
|
||||
------------------------------------------------------------*/
|
||||
/*
|
||||
void CHAR_initSeekGraphicNumberFromString( void )
|
||||
@ -381,12 +381,12 @@ void CHAR_initSeekGraphicNumberFromString( void )
|
||||
}
|
||||
*/
|
||||
/*------------------------------------------------------------
|
||||
* 侬 井日 飓 寞毛 月[
|
||||
* 娄醒
|
||||
* string char* 侬
|
||||
* 忒曰袄
|
||||
* 巨仿□ -1
|
||||
* 公木动陆分午弘仿白奴永弁 寞
|
||||
* 侬 井日 飓 寞毛 月[
|
||||
* 娄醒
|
||||
* string char* 侬
|
||||
* 忒曰袄
|
||||
* 巨仿□ -1
|
||||
* 公木动陆分午弘仿白奴永弁 寞
|
||||
------------------------------------------------------------*/
|
||||
int CHAR_seekGraphicNumberFromString( char* string )
|
||||
{
|
||||
@ -394,7 +394,7 @@ int CHAR_seekGraphicNumberFromString( char* string )
|
||||
int i;
|
||||
int ret;
|
||||
|
||||
/* 公及引引及醒侬分匀凶日公及引引忒允[ */
|
||||
/* 公及引引及醒侬分匀凶日公及引引忒允[ */
|
||||
if( strtolchecknum( string, &ret,10,INT ) )return ret;
|
||||
|
||||
hashvalue = hashpjw( string );
|
||||
@ -409,8 +409,8 @@ int CHAR_seekGraphicNumberFromString( char* string )
|
||||
|
||||
|
||||
|
||||
/*==================== 衬桦赭====================*/
|
||||
/* 衬桦赭毛忡 允月 */
|
||||
/*==================== 衬桦赭====================*/
|
||||
/* 衬桦赭毛忡 允月 */
|
||||
typedef struct tagCHAR_invinsibleArea
|
||||
{
|
||||
CHAR_AREAKIND kind;
|
||||
@ -422,12 +422,12 @@ CHAR_invincibleArea* CHAR_invarea;
|
||||
int CHAR_invareanum;
|
||||
|
||||
/*------------------------------------------------------------
|
||||
* 衬桦赭及赓渝祭毛允月[
|
||||
* 娄醒
|
||||
* filename char* 涩烂白央奶伙
|
||||
* 忒曰袄
|
||||
* 岳 TRUE(1)
|
||||
* 撩 FALSE(0)
|
||||
* 衬桦赭及赓渝祭毛允月[
|
||||
* 娄醒
|
||||
* filename char* 涩烂白央奶伙
|
||||
* 忒曰袄
|
||||
* 岳 TRUE(1)
|
||||
* 撩 FALSE(0)
|
||||
*------------------------------------------------------------*/
|
||||
BOOL CHAR_initInvinciblePlace( char* filename )
|
||||
{
|
||||
@ -444,7 +444,7 @@ BOOL CHAR_initInvinciblePlace( char* filename )
|
||||
|
||||
CHAR_invareanum=0;
|
||||
|
||||
/* 引内 躲卅垫互窒垫丐月井升丹井譬屯月 */
|
||||
/* 引内 躲卅垫互窒垫丐月井升丹井譬屯月 */
|
||||
while( fgets( line, sizeof( line ), f ) ){
|
||||
linenum ++;
|
||||
if( line[0] == '#' )continue; /* comment */
|
||||
@ -468,7 +468,7 @@ BOOL CHAR_initInvinciblePlace( char* filename )
|
||||
fclose( f );
|
||||
return FALSE;
|
||||
}
|
||||
/* 赓渝祭 */
|
||||
/* 赓渝祭 */
|
||||
{
|
||||
int i;
|
||||
for( i = 0; i < CHAR_invareanum; i ++ ) {
|
||||
@ -520,7 +520,7 @@ BOOL CHAR_initInvinciblePlace( char* filename )
|
||||
break;
|
||||
}
|
||||
if( kind == -1 ){
|
||||
print( "资料范围问题: %d...",linenum );
|
||||
print( "资料范围问题: %d...",linenum );
|
||||
continue;
|
||||
}
|
||||
}
|
||||
@ -528,14 +528,14 @@ BOOL CHAR_initInvinciblePlace( char* filename )
|
||||
CHAR_invarea[invreadlen].kind = kind;
|
||||
ret = getStringFromIndexWithDelim( line, " ", 2, token, sizeof(token));
|
||||
if( ret==FALSE ){
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
continue;
|
||||
}else
|
||||
CHAR_invarea[invreadlen].floor = atoi( token );
|
||||
|
||||
ret = getStringFromIndexWithDelim( line, " ", 3, token, sizeof(token));
|
||||
if( ret ==FALSE){
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
continue;
|
||||
}else
|
||||
getFourIntsFromString( token,&lx,&ly,&rx,&ry );
|
||||
@ -552,7 +552,7 @@ BOOL CHAR_initInvinciblePlace( char* filename )
|
||||
}
|
||||
fclose(f);
|
||||
CHAR_invareanum = invreadlen;
|
||||
print( "有效不可战斗有效数是 %d...", CHAR_invareanum );
|
||||
print( "有效不可战斗有效数是 %d...", CHAR_invareanum );
|
||||
|
||||
#ifdef DEBUG
|
||||
{
|
||||
@ -672,7 +672,7 @@ BOOL CHAR_initAppearPosition( char* filename )
|
||||
char token[256];
|
||||
int ret;
|
||||
|
||||
/* 夫午勾户及玄□弁件毛苇月 */
|
||||
/* 夫午勾户及玄□弁件毛苇月 */
|
||||
ret = getStringFromIndexWithDelim( line," ",1,token,
|
||||
sizeof(token));
|
||||
if( ret==FALSE ){
|
||||
@ -705,7 +705,7 @@ BOOL CHAR_initAppearPosition( char* filename )
|
||||
|
||||
CHAR_appearnum = appearreadlen;
|
||||
|
||||
print( "有效显示位置范围数是 %d..", CHAR_appearnum );
|
||||
print( "有效显示位置范围数是 %d..", CHAR_appearnum );
|
||||
#ifdef DEBUG
|
||||
|
||||
{
|
||||
@ -794,15 +794,15 @@ BOOL CHAR_getInitElderPosition( Char* ch,int hometown)
|
||||
}
|
||||
|
||||
/*------------------------------------------------------------
|
||||
* 巨伙母□及桦赭毛 月
|
||||
* 娄醒
|
||||
* elderindex int 巨伙母□奶件犯永弁旦
|
||||
* fl int* 白夫失毛熬仃潸月桦赭
|
||||
* x int* x毛熬仃潸月桦赭
|
||||
* y int* y毛熬仃潸月桦赭
|
||||
* 娄醒
|
||||
* 岳 TRUE(1)
|
||||
* 撩 FALSE(0)
|
||||
* 巨伙母□及桦赭毛 月
|
||||
* 娄醒
|
||||
* elderindex int 巨伙母□奶件犯永弁旦
|
||||
* fl int* 白夫失毛熬仃潸月桦赭
|
||||
* x int* x毛熬仃潸月桦赭
|
||||
* y int* y毛熬仃潸月桦赭
|
||||
* 娄醒
|
||||
* 岳 TRUE(1)
|
||||
* 撩 FALSE(0)
|
||||
------------------------------------------------------------*/
|
||||
BOOL CHAR_getElderPosition( int elderindex, int* fl, int* x, int* y )
|
||||
{
|
||||
@ -814,14 +814,14 @@ BOOL CHAR_getElderPosition( int elderindex, int* fl, int* x, int* y )
|
||||
return TRUE;
|
||||
}
|
||||
/*------------------------------------------------------------
|
||||
* 赢 NPC互愤坌及赓渝祭及午五卞}赢 卞踏五仇戈及分[
|
||||
* 公及凶户及奶件正□白尼奶旦
|
||||
* 娄醒
|
||||
* index int 左□田□匹 撩 仄凶日FALSE 毛井尹允
|
||||
* fl int 匏 及树
|
||||
* 赢 NPC互愤坌及赓渝祭及午五卞}赢 卞踏五仇戈及分[
|
||||
* 公及凶户及奶件正□白尼奶旦
|
||||
* 娄醒
|
||||
* index int 左□田□匹 撩 仄凶日FALSE 毛井尹允
|
||||
* fl int 匏 及树
|
||||
* x int
|
||||
* y int
|
||||
* NPC及伙□民件井日银歹木月及分[
|
||||
* NPC及伙□民件井日银歹木月及分[
|
||||
------------------------------------------------------------*/
|
||||
BOOL CHAR_ElderSetPosition( int elderindex ,int fl,int x ,int y)
|
||||
{
|
||||
@ -840,7 +840,7 @@ BOOL CHAR_ElderSetPosition( int elderindex ,int fl,int x ,int y)
|
||||
void CHAR_setInitValues( Char* ch )
|
||||
{
|
||||
|
||||
#ifndef _PROFESSION_SKILL // WON ADD 人物职业技能
|
||||
#ifndef _PROFESSION_SKILL // WON ADD 人物职业技能
|
||||
|
||||
static int CHAR_titleindextbl[] ={ 0,1,2,3,4,5,6 };
|
||||
int elderindex;
|
||||
@ -1013,7 +1013,7 @@ static int EnemyExpTbl[]={
|
||||
|
||||
|
||||
|
||||
// 酵烂读卅烦董袄煌遥
|
||||
// 酵烂读卅烦董袄煌遥
|
||||
int GetEnemyExp( int level ){
|
||||
/*
|
||||
int exp = 0;
|
||||
@ -1081,7 +1081,7 @@ int GetEnemyExp( int level ){
|
||||
};
|
||||
*/
|
||||
#endif
|
||||
static int LevelUpTbl[] = { // 经验值 等级 换算表
|
||||
static int LevelUpTbl[] = { // 经验值 等级 换算表
|
||||
0, // 0 EX=(lv^4)/10
|
||||
0, // 1
|
||||
2, 8, 25, 62, 129,
|
||||
@ -1273,7 +1273,7 @@ void CHAR_CheckPetDoLimitlevel( int petindex , int toindex, int level)
|
||||
|
||||
if( strcmp( CHAR_getChar( petindex, CHAR_OWNERCDKEY), CHAR_getChar( toindex, CHAR_CDKEY) ) ||
|
||||
strcmp( CHAR_getChar( petindex, CHAR_OWNERCHARANAME), CHAR_getChar( toindex, CHAR_NAME) )){
|
||||
sprintf(token,"我不认识你呀!快把我还给我主人!");
|
||||
sprintf(token,"我不认识你呀!快把我还给我主人!");
|
||||
//andy 1/11 reEdit
|
||||
vital -= RAND(2,10); if (vital<0) vital=0;
|
||||
str -= RAND(2,10); if (str<0) str=0;
|
||||
@ -1290,7 +1290,7 @@ void CHAR_CheckPetDoLimitlevel( int petindex , int toindex, int level)
|
||||
CHAR_getChar( petindex, CHAR_NAME),
|
||||
petindex, 2,
|
||||
CHAR_getInt( petindex, CHAR_LV),
|
||||
"No_master(玛蕾不对主人)",
|
||||
"No_master(玛蕾不对主人)",
|
||||
CHAR_getInt( toindex,CHAR_FLOOR),
|
||||
CHAR_getInt( toindex,CHAR_X ),
|
||||
CHAR_getInt( toindex,CHAR_Y )
|
||||
@ -1332,14 +1332,14 @@ void CHAR_CheckPetDoLimitlevel( int petindex , int toindex, int level)
|
||||
}
|
||||
#endif
|
||||
|
||||
int CHAR_PetTakeDrop( int petindex, int floor, int ox, int oy) //强制丢弃宠物升级
|
||||
int CHAR_PetTakeDrop( int petindex, int floor, int ox, int oy) //强制丢弃宠物升级
|
||||
{
|
||||
int x, y, objindex;
|
||||
|
||||
x = rand()%10;
|
||||
y = rand()%10;
|
||||
|
||||
//丢下宠物 CHAR_endCharOneArray
|
||||
//丢下宠物 CHAR_endCharOneArray
|
||||
objindex = PET_dropPetAbsolute( petindex,floor,x,y, FALSE );
|
||||
if( objindex == -1 ) {
|
||||
return -1;
|
||||
@ -1353,7 +1353,7 @@ int CHAR_PetTakeDrop( int petindex, int floor, int ox, int oy) //ǿ
|
||||
return floor;
|
||||
}
|
||||
|
||||
int CHAR_PetTakeLevelUp( int petindex, int lv)//强制宠物升级
|
||||
int CHAR_PetTakeLevelUp( int petindex, int lv)//强制宠物升级
|
||||
{
|
||||
int k;
|
||||
for( k = 1; k < lv; k ++ ){
|
||||
@ -1390,7 +1390,7 @@ int CHAR_PetLevelUp( int petindex )
|
||||
#ifdef _TEACHER_SYSTEM
|
||||
int iGetFame = 0;
|
||||
#endif
|
||||
// 娄醒民尼永弁
|
||||
// 娄醒民尼永弁
|
||||
if( CHAR_CHECKINDEX( petindex ) == FALSE ) return -1;
|
||||
if( CHAR_getInt( petindex, CHAR_WHICHTYPE ) != CHAR_TYPEPET &&
|
||||
CHAR_getInt( petindex, CHAR_WHICHTYPE ) != CHAR_TYPEPLAYERNPC &&
|
||||
@ -1398,32 +1398,32 @@ int CHAR_PetLevelUp( int petindex )
|
||||
|
||||
LevelUpPoint = CHAR_getInt( petindex, CHAR_ALLOCPOINT );
|
||||
|
||||
// 矢永玄及仿件弁
|
||||
// 矢永玄及仿件弁
|
||||
petrank = CHAR_getInt( petindex, CHAR_PETRANK );
|
||||
if( petrank < 0 || petrank > 5 ) petrank = 0;
|
||||
|
||||
// 潸
|
||||
// 潸
|
||||
vital = (float)(( LevelUpPoint >> 24 ) & 0xFF);
|
||||
str = (float)(( LevelUpPoint >> 16 ) & 0xFF);
|
||||
tgh = (float)(( LevelUpPoint >> 8 ) & 0xFF);
|
||||
dex = (float)(( LevelUpPoint >> 0 ) & 0xFF);
|
||||
|
||||
// ㄠㄟ荚ㄣ 扔奶戊夫毛蕊匀化备嫩 卞ㄠ箫允
|
||||
// ㄠㄟ荚ㄣ 扔奶戊夫毛蕊匀化备嫩 卞ㄠ箫允
|
||||
for( i = 0; i < 10; i ++ ){
|
||||
Param[RAND( 0, 3 )] += 1.0;
|
||||
}
|
||||
|
||||
// 仿件弁卞方月 区及仿件母丞
|
||||
// 仿件弁卞方月 区及仿件母丞
|
||||
fRand = (float)RAND( RankRandTbl[petrank].min, RankRandTbl[petrank].max )
|
||||
* 0.01;
|
||||
|
||||
// 喃曰蕊曰禾奶件玄方曰煌遥
|
||||
// 喃曰蕊曰禾奶件玄方曰煌遥
|
||||
vital = (float)vital * fRand + Param[0] * fRand;
|
||||
str = (float)str * fRand + Param[1] * fRand;
|
||||
tgh = (float)tgh * fRand + Param[2] * fRand;
|
||||
dex = (float)dex * fRand + Param[3] * fRand;
|
||||
|
||||
// 煌遥
|
||||
// 煌遥
|
||||
CHAR_setInt( petindex, CHAR_VITAL,
|
||||
CHAR_getInt( petindex, CHAR_VITAL ) + (int)vital );
|
||||
CHAR_setInt( petindex, CHAR_STR,
|
||||
@ -1433,7 +1433,7 @@ int CHAR_PetLevelUp( int petindex )
|
||||
CHAR_setInt( petindex, CHAR_DEX,
|
||||
CHAR_getInt( petindex, CHAR_DEX ) + (int)dex );
|
||||
|
||||
// CoolFish: 饲育家族声望更新
|
||||
// CoolFish: 饲育家族声望更新
|
||||
{
|
||||
int level = CHAR_getInt(petindex, CHAR_LV);
|
||||
int exp1 = 0, exp2 = 0;
|
||||
@ -1453,8 +1453,8 @@ int CHAR_PetLevelUp( int petindex )
|
||||
exp1 = CHAR_GetLevelExp( petindex, level);
|
||||
exp2 = CHAR_GetLevelExp( petindex, level - 1);
|
||||
|
||||
//#ifdef _PERSONAL_FAME // Arminius 8.30: 家族个人声望
|
||||
// feedpoint = (exp1 - exp2) / 20000; // 减半
|
||||
//#ifdef _PERSONAL_FAME // Arminius 8.30: 家族个人声望
|
||||
// feedpoint = (exp1 - exp2) / 20000; // 减半
|
||||
//#else
|
||||
// feedpoint = (exp1 - exp2) / 10000;
|
||||
//#endif
|
||||
@ -1462,7 +1462,7 @@ int CHAR_PetLevelUp( int petindex )
|
||||
int feedpoint;
|
||||
// CoolFish: 2001/10/03
|
||||
int fd = getfdFromCharaIndex(ownerindex);
|
||||
#ifdef _PERSONAL_FAME // Arminius 8.30: 家族个人声望
|
||||
#ifdef _PERSONAL_FAME // Arminius 8.30: 家族个人声望
|
||||
#ifdef _PETUP_GET_EXP
|
||||
if(getPetUpGetExp()==1){
|
||||
if(level>=131){
|
||||
@ -1483,8 +1483,8 @@ int CHAR_PetLevelUp( int petindex )
|
||||
CHAR_earnFame(ownerindex, exp2 / 20000);
|
||||
sprintf(tmpbuf, "%d", exp2 / 20000);
|
||||
}else{
|
||||
CHAR_earnFame(ownerindex, 0); //个人声望
|
||||
sprintf(tmpbuf, "%d", 0); //家族获得声望
|
||||
CHAR_earnFame(ownerindex, 0); //个人声望
|
||||
sprintf(tmpbuf, "%d", 0); //家族获得声望
|
||||
}
|
||||
#else
|
||||
CHAR_earnFame(ownerindex, exp2 / 20000);
|
||||
@ -1536,7 +1536,7 @@ int CHAR_PetLevelUp( int petindex )
|
||||
{
|
||||
int i;
|
||||
for(i=0;i<FAMILY_MAXHOME;i++){
|
||||
// 任何一个庄园有在挑战排程,气势值一改变就向AC要最新气势资料
|
||||
// 任何一个庄园有在挑战排程,气势值一改变就向AC要最新气势资料
|
||||
if(fmpointlist.fm_inwar[i]){
|
||||
saacproto_ACShowTopFMList_send(acfd, FM_TOP_MOMENTUM);
|
||||
break;
|
||||
@ -1546,7 +1546,7 @@ int CHAR_PetLevelUp( int petindex )
|
||||
#endif
|
||||
}
|
||||
#ifdef _NEW_MANOR_LAW
|
||||
// 未审核通过时只更新成员气势值
|
||||
// 未审核通过时只更新成员气势值
|
||||
else if(CHAR_getInt(ownerindex, CHAR_FMLEADERFLAG) == FMMEMBER_APPLY){
|
||||
sprintf(tmpbuf,"%d",CHAR_getInt(ownerindex,CHAR_FAME));
|
||||
saacproto_ACFixFMData_send(acfd,
|
||||
@ -1567,23 +1567,23 @@ int CHAR_PetLevelUp( int petindex )
|
||||
CHAR_getWorkInt(ownerindex, CHAR_WORKFMCHARINDEX), 0);
|
||||
#endif
|
||||
#ifdef _TEACHER_SYSTEM
|
||||
iGetFame = feedpoint/20; // 导师获得学生所得声望的 5% (1/20)
|
||||
// 检查所得的声望有没有大於0
|
||||
iGetFame = feedpoint/20; // 导师获得学生所得声望的 5% (1/20)
|
||||
// 检查所得的声望有没有大於0
|
||||
if(iGetFame > 0){
|
||||
// 检查有没有导师
|
||||
// 检查有没有导师
|
||||
if(strlen(CHAR_getChar(ownerindex,CHAR_TEACHER_ID)) > 0 && strlen(CHAR_getChar(ownerindex,CHAR_TEACHER_NAME)) > 0){
|
||||
int iPlayernum = CHAR_getPlayerMaxNum(),i;
|
||||
char szMsg[128];
|
||||
|
||||
// 检查导师在不在线上
|
||||
// 检查导师在不在线上
|
||||
for(i=0;i<iPlayernum;i++){
|
||||
if(CHAR_getCharUse(i) == FALSE) continue;
|
||||
if(strcmp(CHAR_getChar(ownerindex,CHAR_TEACHER_ID),CHAR_getChar(i,CHAR_CDKEY)) == 0 &&
|
||||
strcmp(CHAR_getChar(ownerindex,CHAR_TEACHER_NAME),CHAR_getChar(i,CHAR_NAME)) == 0){
|
||||
float fGetFame = (float)iGetFame/100;
|
||||
// 导师在线上
|
||||
// 导师在线上
|
||||
CHAR_setWorkInt(i,CHAR_WORK_GET_TEACHER_FAME,CHAR_getWorkInt(i,CHAR_WORK_GET_TEACHER_FAME) + iGetFame);
|
||||
sprintf(szMsg,"获得学生 %s %.2f 点声望",CHAR_getChar(ownerindex,CHAR_NAME),fGetFame);
|
||||
sprintf(szMsg,"获得学生 %s %.2f 点声望",CHAR_getChar(ownerindex,CHAR_NAME),fGetFame);
|
||||
CHAR_talkToCli(i,-1,szMsg,CHAR_COLORYELLOW);
|
||||
break;
|
||||
}
|
||||
@ -1610,13 +1610,13 @@ int PETFUSION_FusionPetSub( int charaindex, int Subindex1, int Subindex2, int *w
|
||||
}
|
||||
|
||||
if( CHAR_getInt( Subindex1, CHAR_FUSIONBEIT) == 1 ||
|
||||
CHAR_getInt( Subindex1, CHAR_FUSIONRAISE) > 0 )return 0;//检查是否为融合宠
|
||||
CHAR_getInt( Subindex1, CHAR_FUSIONRAISE) > 0 )return 0;//检查是否为融合宠
|
||||
for( i=0; i<4; i++) {
|
||||
work[i] = 0;
|
||||
}
|
||||
if( PET_getBaseAndSkill( charaindex, Subindex1, base, petskill, 0) == FALSE )
|
||||
return 0;
|
||||
if( CHAR_getInt( Subindex1, CHAR_LV) < 80 ){//等级销弱
|
||||
if( CHAR_getInt( Subindex1, CHAR_LV) < 80 ){//等级销弱
|
||||
for( i=0; i<4; i++) {
|
||||
base[i] = base[i]*0.8;
|
||||
}
|
||||
@ -1633,11 +1633,11 @@ int PETFUSION_FusionPetSub( int charaindex, int Subindex1, int Subindex2, int *w
|
||||
}
|
||||
|
||||
if( CHAR_getInt( Subindex2, CHAR_FUSIONBEIT) == 1 ||
|
||||
CHAR_getInt( Subindex2, CHAR_FUSIONRAISE) > 0 )return 0;//检查是否为融合宠
|
||||
CHAR_getInt( Subindex2, CHAR_FUSIONRAISE) > 0 )return 0;//检查是否为融合宠
|
||||
|
||||
if( PET_getBaseAndSkill( charaindex, Subindex2, base, NULL, 0) == FALSE )
|
||||
return 0;
|
||||
if( CHAR_getInt( Subindex2, CHAR_LV) < 80 ){//等级销弱
|
||||
if( CHAR_getInt( Subindex2, CHAR_LV) < 80 ){//等级销弱
|
||||
for( i=0; i<4; i++) {
|
||||
base[i] = base[i]*0.8;
|
||||
}
|
||||
@ -1658,11 +1658,11 @@ BOOL PETFUSION_FusionPetMain( int charaindex, int Mainindex, int *work, int *ski
|
||||
return 0;
|
||||
}
|
||||
if( CHAR_getInt( Mainindex, CHAR_FUSIONBEIT) == 1 ||
|
||||
CHAR_getInt( Mainindex, CHAR_FUSIONRAISE) > 0 )return FALSE;//检查是否为融合宠
|
||||
CHAR_getInt( Mainindex, CHAR_FUSIONRAISE) > 0 )return FALSE;//检查是否为融合宠
|
||||
|
||||
if( PET_getBaseAndSkill( charaindex, Mainindex, base, petskill, 0) == FALSE )
|
||||
return -1;
|
||||
if( CHAR_getInt( Mainindex, CHAR_LV) < 80 ){//等级销弱
|
||||
if( CHAR_getInt( Mainindex, CHAR_LV) < 80 ){//等级销弱
|
||||
for( i=0; i<4; i++) {
|
||||
base[i] = base[i]*0.8;
|
||||
}
|
||||
@ -1704,7 +1704,7 @@ BOOL PETFUSION_DelPet( int toindex, int Mainindex, int Subindex1, int Subindex2,
|
||||
snprintf( szPet, sizeof( szPet ), "K%d", j);
|
||||
CHAR_sendStatusString( toindex, szPet );
|
||||
|
||||
snprintf( msgbuf,sizeof( msgbuf), "交出%s。", CHAR_getChar( petindex[i], CHAR_NAME));
|
||||
snprintf( msgbuf,sizeof( msgbuf), "交出%s。", CHAR_getChar( petindex[i], CHAR_NAME));
|
||||
CHAR_talkToCli( toindex, -1, msgbuf, CHAR_COLORYELLOW);
|
||||
LogPet(
|
||||
CHAR_getChar( toindex, CHAR_NAME ),
|
||||
@ -1732,13 +1732,13 @@ int PETFUSION_Evolution( int charaindex, int petindex)
|
||||
int newindex=-1;
|
||||
CHAR_setInt( petindex, CHAR_FUSIONTIMELIMIT, -1);
|
||||
|
||||
sprintf( buf, "蛋〈%s〉孵化成", CHAR_getChar( petindex, CHAR_NAME));
|
||||
sprintf( buf, "蛋〈%s〉孵化成", CHAR_getChar( petindex, CHAR_NAME));
|
||||
newindex = EVOLUTION_createPetFromEnemyIndex( charaindex, petindex, 0);
|
||||
if( !CHAR_CHECKINDEX( newindex) ){
|
||||
CHAR_talkToCli( charaindex, -1, "宠物孵化发生错误。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( charaindex, -1, "宠物孵化发生错误。", CHAR_COLORYELLOW);
|
||||
return -1;
|
||||
}
|
||||
sprintf( buf1, "〈%s〉。", CHAR_getChar( newindex, CHAR_NAME));
|
||||
sprintf( buf1, "〈%s〉。", CHAR_getChar( newindex, CHAR_NAME));
|
||||
strcat( buf, buf1);
|
||||
CHAR_talkToCli( charaindex, -1, buf, CHAR_COLORYELLOW);
|
||||
|
||||
@ -1797,11 +1797,11 @@ int NPC_PetTransManGetAns( int total1, int total2, int LV, int rank )
|
||||
#else
|
||||
if( LV > 140 ) LV = 140;
|
||||
#endif
|
||||
total = ( (float)total1/100 ); // 玛蕾最高 total1=200
|
||||
total = ( (float)total1/100 ); // 玛蕾最高 total1=200
|
||||
total = total*total*total*total*total;
|
||||
if( total < 1 ) total = 0;
|
||||
else total= total*1.3; // 所以total最大=41.6 最小=0
|
||||
Fx = (int)((5-rank)*1.2)+5; // rank=0~6 所以 Fx最大=11(rank=0)最小=4(rank=6)
|
||||
else total= total*1.3; // 所以total最大=41.6 最小=0
|
||||
Fx = (int)((5-rank)*1.2)+5; // rank=0~6 所以 Fx最大=11(rank=0)最小=4(rank=6)
|
||||
ans = (int)total + total2 + ((LV-TransLV)/Fx); //42+150+30/11=194
|
||||
|
||||
#ifdef _PET_2TRANS
|
||||
@ -1929,7 +1929,7 @@ void CHAR_AutoChikulaStone( int charaindex, int Dflg)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef _STATUS_WATERWORD //水世界状态
|
||||
#ifdef _STATUS_WATERWORD //水世界状态
|
||||
void CHAR_CheckWaterStatus( int charaindex)
|
||||
{
|
||||
if( !CHAR_CHECKINDEX( charaindex) ) return;
|
||||
@ -1943,7 +1943,7 @@ void CHAR_CheckWaterStatus( int charaindex)
|
||||
if( CHAR_getWorkInt( charaindex, CHAR_WORKSTATUSWATER) != 0 &&
|
||||
CHAR_getWorkInt( charaindex, CHAR_WORKSTATUSWATER)%10 == 0 ){
|
||||
char buf1[256];
|
||||
sprintf( buf1, "水中呼吸时间剩余%d分。",
|
||||
sprintf( buf1, "水中呼吸时间剩余%d分。",
|
||||
CHAR_getWorkInt( charaindex, CHAR_WORKSTATUSWATER));
|
||||
CHAR_talkToCli( charaindex, -1, buf1, CHAR_COLORYELLOW);
|
||||
}
|
||||
@ -1953,7 +1953,7 @@ void CHAR_CheckWaterStatus( int charaindex)
|
||||
return;
|
||||
}
|
||||
if( CHAR_getWorkInt( charaindex, CHAR_WORKMAPFLOORTYPE) == 1 &&
|
||||
CHAR_getWorkInt( charaindex, CHAR_WORKSTATUSWATER) <= 0 ){//水世界
|
||||
CHAR_getWorkInt( charaindex, CHAR_WORKSTATUSWATER) <= 0 ){//水世界
|
||||
char token[256];
|
||||
int defhp=0;
|
||||
int maxhp = CHAR_getWorkInt( charaindex, CHAR_WORKMAXHP);
|
||||
@ -1961,7 +1961,7 @@ void CHAR_CheckWaterStatus( int charaindex)
|
||||
defhp = (maxhp*0.033);
|
||||
if( defhp <= 0 ) defhp = 1;
|
||||
myhp = myhp - defhp;
|
||||
sprintf( token, "因无法呼吸,扣%d HP。", defhp);
|
||||
sprintf( token, "因无法呼吸,扣%d HP。", defhp);
|
||||
CHAR_talkToCli( charaindex, -1, token, CHAR_COLORYELLOW);
|
||||
|
||||
if( myhp <= 0 ){
|
||||
@ -2016,22 +2016,22 @@ void CHAR_PlayerRide( int charaindex )
|
||||
{
|
||||
int i,j;
|
||||
int MetamoList[5][13]={
|
||||
/*{ 小矮子 赛亚人 辫子男孩 酷哥 熊皮男 大个 小矮妹 熊皮妹 帽子妹 短发夹妹 手套女 辣妹 虎}, 此行为说明行 */
|
||||
{ 100000, 100025, 100055, 100060, 100095, 100100, 100135, 100145, 100165, 100190, 100200, 100230, 309}, //红
|
||||
{ 100005, 100030, 100050, 100065, 100085, 100115, 100120, 100140, 100170, 100195, 100210, 100225, 307}, //绿
|
||||
{ 100010, 100035, 100045, 100070, 100090, 100110, 100125, 100150, 100160, 100185, 100215, 100220, 310}, //黄
|
||||
{ 100015, 100020, 100040, 100075, 100080, 100105, 100130, 100155, 100175, 100180, 100205, 100235, 308}, //灰
|
||||
{ 331 , 483 , 330 , 332 , 483 , 332 , 333 , 333 , 331 , 330 , 332 , 483 , 0 }, //雷
|
||||
/*{ 小矮子 赛亚人 辫子男孩 酷哥 熊皮男 大个 小矮妹 熊皮妹 帽子妹 短发夹妹 手套女 辣妹 虎}, 此行为说明行 */
|
||||
{ 100000, 100025, 100055, 100060, 100095, 100100, 100135, 100145, 100165, 100190, 100200, 100230, 309}, //红
|
||||
{ 100005, 100030, 100050, 100065, 100085, 100115, 100120, 100140, 100170, 100195, 100210, 100225, 307}, //绿
|
||||
{ 100010, 100035, 100045, 100070, 100090, 100110, 100125, 100150, 100160, 100185, 100215, 100220, 310}, //黄
|
||||
{ 100015, 100020, 100040, 100075, 100080, 100105, 100130, 100155, 100175, 100180, 100205, 100235, 308}, //灰
|
||||
{ 331 , 483 , 330 , 332 , 483 , 332 , 333 , 333 , 331 , 330 , 332 , 483 , 0 }, //雷
|
||||
};
|
||||
for(i=0;i<4;i++)
|
||||
for(j=0;j<12;j++)
|
||||
if(CHAR_getInt( charaindex, CHAR_BASEIMAGENUMBER) == MetamoList[i][j]){
|
||||
if(strstr( getPlayerRide(), "配套送虎加雷")){
|
||||
if(strstr( getPlayerRide(), "配套送虎加雷")){
|
||||
setNewplayergivepet(3,MetamoList[i][12]);
|
||||
setNewplayergivepet(4,MetamoList[4][j]);
|
||||
}else if(strstr( getPlayerRide(), "配套送雷")){
|
||||
}else if(strstr( getPlayerRide(), "配套送雷")){
|
||||
setNewplayergivepet(4,MetamoList[4][j]);
|
||||
}else if(strstr( getPlayerRide(), "配套送虎")){
|
||||
}else if(strstr( getPlayerRide(), "配套送虎")){
|
||||
setNewplayergivepet(4,MetamoList[i][12]);
|
||||
}
|
||||
break;
|
||||
|
@ -54,7 +54,7 @@ void CHAR_allpostwalk( int index )
|
||||
BOOL CHAR_makeCADefaultString( int objindex,char* buf,int buflen, int act )
|
||||
{
|
||||
char objindexbuf[64];
|
||||
/* 民尼永弁 */
|
||||
/* 民尼永弁 */
|
||||
if( CHECKOBJECT(objindex) == FALSE ) return FALSE;
|
||||
if( OBJECT_getType(objindex) != OBJTYPE_CHARA ) return FALSE;
|
||||
snprintf( buf,buflen,"%s|%d|%d|%d|%d",
|
||||
@ -260,8 +260,8 @@ void CHAR_sendWallDamage( int charaindex,int x, int y, int damage )
|
||||
|
||||
static struct ParamShow
|
||||
{
|
||||
int paramindex; /* 由仿丢□正及奶件犯永弁旦 */
|
||||
char* offmessage; /* 匀凶凛及丢永本□斥 侬 */
|
||||
int paramindex; /* 由仿丢□正及奶件犯永弁旦 */
|
||||
char* offmessage; /* 匀凶凛及丢永本□斥 侬 */
|
||||
}pShow[]={
|
||||
{CHAR_PARALYSIS, CHAR_RECOVERPARALYSISSTRING},
|
||||
{CHAR_SLEEP, CHAR_RECOVERSILENCESTRING},
|
||||
@ -513,9 +513,9 @@ void CHAR_playerTalkedfunc( int charaindex, int talkindex,char* message, int col
|
||||
if( (channel>-1) && (fmindex>0) ){
|
||||
if( channel == 0 ){
|
||||
#ifndef _CHANNEL_MODIFY
|
||||
snprintf( lastbuf,sizeof(lastbuf),"P|[族]%s",
|
||||
snprintf( lastbuf,sizeof(lastbuf),"P|[族]%s",
|
||||
#else
|
||||
snprintf( lastbuf,sizeof(lastbuf),"P|F|[族]%s",
|
||||
snprintf( lastbuf,sizeof(lastbuf),"P|F|[族]%s",
|
||||
#endif
|
||||
makeEscapeString( CHAR_appendNameAndTitle(talkindex, message, mesgbuf,sizeof(mesgbuf)),
|
||||
escapebuf,sizeof(escapebuf) ));
|
||||
@ -526,9 +526,9 @@ void CHAR_playerTalkedfunc( int charaindex, int talkindex,char* message, int col
|
||||
else if( channel == FAMILY_MAXCHANNEL && CHAR_getInt( talkindex, CHAR_FMLEADERFLAG ) == 1 ){
|
||||
#endif
|
||||
#ifndef _CHANNEL_MODIFY
|
||||
snprintf( lastbuf,sizeof(lastbuf),"P|[族长广播]%s",
|
||||
snprintf( lastbuf,sizeof(lastbuf),"P|[族长广播]%s",
|
||||
#else
|
||||
snprintf( lastbuf,sizeof(lastbuf),"P|F|[族长广播]%s",
|
||||
snprintf( lastbuf,sizeof(lastbuf),"P|F|[族长广播]%s",
|
||||
#endif
|
||||
makeEscapeString(CHAR_appendNameAndTitle(talkindex, message,mesgbuf,sizeof(mesgbuf)),
|
||||
escapebuf,sizeof(escapebuf) ));
|
||||
@ -540,7 +540,7 @@ void CHAR_playerTalkedfunc( int charaindex, int talkindex,char* message, int col
|
||||
}else{
|
||||
#ifdef _CHANNEL_MODIFY
|
||||
if(CHAR_getFlg(talkindex,CHAR_ISPARTYCHAT) && (CHAR_getWorkInt(talkindex,CHAR_WORKPARTYMODE) != CHAR_PARTY_NONE))
|
||||
snprintf( lastbuf,sizeof(lastbuf),"P|T|[队]%s",
|
||||
snprintf( lastbuf,sizeof(lastbuf),"P|T|[队]%s",
|
||||
makeEscapeString(CHAR_appendNameAndTitle(talkindex, message,mesgbuf,sizeof(mesgbuf)),
|
||||
escapebuf,sizeof(escapebuf) ));
|
||||
else
|
||||
|
600
char/char_item.c
600
char/char_item.c
File diff suppressed because it is too large
Load Diff
@ -22,12 +22,12 @@
|
||||
extern struct FM_PKFLOOR fmpkflnum[FAMILY_FMPKFLOOR];
|
||||
|
||||
/*------------------------------------------------------------
|
||||
* 由□ 奴楮 及末□旦
|
||||
* 由□ 奴楮 及末□旦
|
||||
------------------------------------------------------------*/
|
||||
|
||||
/*------------------------------------------------------------
|
||||
* 坞中化中月由□ 奴 毛茧允
|
||||
* 卅仃木壬-1毛忒允[
|
||||
* 坞中化中月由□ 奴 毛茧允
|
||||
* 卅仃木壬-1毛忒允[
|
||||
------------------------------------------------------------*/
|
||||
int CHAR_getEmptyPartyArray( int charaindex)
|
||||
{
|
||||
@ -73,10 +73,10 @@ int CHAR_getPartyNum( int charaindex)
|
||||
return i;
|
||||
}
|
||||
/*------------------------------------------------------------
|
||||
* 端卞由□ 奴卞 月质
|
||||
* 端卞由□ 奴卞 月质
|
||||
*
|
||||
* charaindex int 愤坌
|
||||
* targetindex int 月锹澎及谛
|
||||
* charaindex int 愤坌
|
||||
* targetindex int 月锹澎及谛
|
||||
------------------------------------------------------------*/
|
||||
BOOL CHAR_JoinParty_Main( int charaindex, int targetindex)
|
||||
{
|
||||
@ -87,7 +87,7 @@ BOOL CHAR_JoinParty_Main( int charaindex, int targetindex)
|
||||
int toindex;
|
||||
int parray;
|
||||
|
||||
/* 褪互中凶日娄匀舰曰请允 */
|
||||
/* 褪互中凶日娄匀舰曰请允 */
|
||||
if( CHAR_getWorkInt( targetindex, CHAR_WORKPARTYMODE) == CHAR_PARTY_NONE ) {
|
||||
toindex = targetindex;
|
||||
}
|
||||
@ -104,19 +104,19 @@ BOOL CHAR_JoinParty_Main( int charaindex, int targetindex)
|
||||
return FALSE;
|
||||
}
|
||||
#endif
|
||||
/* 锹澎由□ 奴及谛醒反 井" */
|
||||
/* 锹澎由□ 奴及谛醒反 井" */
|
||||
parray = CHAR_getEmptyPartyArray( toindex) ;
|
||||
if( parray == -1 ) {
|
||||
print( "%s : %d err\n", __FILE__,__LINE__);
|
||||
return;
|
||||
}
|
||||
|
||||
//组队BUG
|
||||
//组队BUG
|
||||
int pi;
|
||||
for( pi = 0; pi < CHAR_PARTYMAX; pi ++ ) {
|
||||
int index = CHAR_getWorkInt( toindex, pi + CHAR_WORKPARTYINDEX1);
|
||||
if( CHAR_CHECKINDEX(index)) {
|
||||
if(index == charaindex) return; //组队BUG
|
||||
if(index == charaindex) return; //组队BUG
|
||||
}
|
||||
}
|
||||
#ifdef _WARNPC_CTRL
|
||||
@ -143,7 +143,7 @@ BOOL CHAR_JoinParty_Main( int charaindex, int targetindex)
|
||||
if(ip==toip){
|
||||
ipcnt++;
|
||||
if(ipcnt>sameipnum){
|
||||
CHAR_talkToCli( charaindex, -1, "此地图允许的单IP组队已达上限,无法加入。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( charaindex, -1, "此地图允许的单IP组队已达上限,无法加入。", CHAR_COLORYELLOW);
|
||||
return;
|
||||
}
|
||||
else
|
||||
@ -158,7 +158,7 @@ BOOL CHAR_JoinParty_Main( int charaindex, int targetindex)
|
||||
if(ip==toip){
|
||||
ipcnt++;
|
||||
if(ipcnt>sameipnum){
|
||||
CHAR_talkToCli( charaindex, -1, "此地图允许的单IP组队已达上限,无法加入。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( charaindex, -1, "此地图允许的单IP组队已达上限,无法加入。", CHAR_COLORYELLOW);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -176,7 +176,7 @@ BOOL CHAR_JoinParty_Main( int charaindex, int targetindex)
|
||||
time_t timep;
|
||||
struct tm *p;
|
||||
time(&timep);
|
||||
p=localtime(&timep); /*取得当地时间*/
|
||||
p=localtime(&timep); /*取得当地时间*/
|
||||
int day=p->tm_wday;
|
||||
int hour=p->tm_hour;
|
||||
if(hour < 2) day = day - 1;
|
||||
@ -185,7 +185,7 @@ BOOL CHAR_JoinParty_Main( int charaindex, int targetindex)
|
||||
if( CHAR_getWorkInt( toindex, CHAR_WORKPARTYMODE) == CHAR_PARTY_NONE ) {
|
||||
partycnt++;
|
||||
if(partycnt>day){
|
||||
CHAR_talkToCli( charaindex, -1, "本地图限制组队人数已达上限,周一为1人,周二为2人,周三为3人,周四为4人,其余无限制。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( charaindex, -1, "本地图限制组队人数已达上限,周一为1人,周二为2人,周三为3人,周四为4人,其余无限制。", CHAR_COLORYELLOW);
|
||||
return;
|
||||
}
|
||||
else
|
||||
@ -196,7 +196,7 @@ BOOL CHAR_JoinParty_Main( int charaindex, int targetindex)
|
||||
if( CHAR_CHECKINDEX(index)) {
|
||||
partycnt++;
|
||||
if(partycnt>day){
|
||||
CHAR_talkToCli( charaindex, -1, "本地图限制组队人数已达上限,周一为1人,周二为2人,周三为3人,周四为4人,其余无限制。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( charaindex, -1, "本地图限制组队人数已达上限,周一为1人,周二为2人,周三为3人,周四为4人,其余无限制。", CHAR_COLORYELLOW);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -205,11 +205,11 @@ BOOL CHAR_JoinParty_Main( int charaindex, int targetindex)
|
||||
}
|
||||
}
|
||||
#endif
|
||||
/* 窒手 仄 褪及凛反褪卞卅匀凶CA毛霜耨允月 */
|
||||
/* 窒手 仄 褪及凛反褪卞卅匀凶CA毛霜耨允月 */
|
||||
if( CHAR_getWorkInt( toindex, CHAR_WORKPARTYMODE) == CHAR_PARTY_NONE ) {
|
||||
CHAR_sendLeader( CHAR_getWorkInt( toindex, CHAR_WORKOBJINDEX), 1);
|
||||
/* 锹澎及橇谪及踏五晶尹 */
|
||||
/* 褪卞卅月 */
|
||||
/* 锹澎及橇谪及踏五晶尹 */
|
||||
/* 褪卞卅月 */
|
||||
CHAR_setWorkInt( toindex, CHAR_WORKPARTYMODE, 1);
|
||||
CHAR_setWorkInt( toindex, CHAR_WORKPARTYINDEX1, toindex);
|
||||
firstflg = TRUE;
|
||||
@ -235,7 +235,7 @@ BOOL CHAR_JoinParty_Main( int charaindex, int targetindex)
|
||||
}
|
||||
}
|
||||
|
||||
snprintf( buf,sizeof( buf), "%s 加入团队!",
|
||||
snprintf( buf,sizeof( buf), "%s 加入团队!",
|
||||
CHAR_getChar( charaindex, CHAR_NAME));
|
||||
|
||||
for( i = 0; i < CHAR_PARTYMAX; i ++ ) {
|
||||
@ -247,13 +247,13 @@ BOOL CHAR_JoinParty_Main( int charaindex, int targetindex)
|
||||
CHAR_talkToCli( index, -1, buf, CHAR_COLORYELLOW);
|
||||
}
|
||||
else {
|
||||
CHAR_talkToCli( index, -1, "加入团队!", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( index, -1, "加入团队!", CHAR_COLORYELLOW);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
/*------------------------------------------------------------
|
||||
* 由□ 奴卞 欠丹午允月[
|
||||
* 由□ 奴卞 欠丹午允月[
|
||||
------------------------------------------------------------*/
|
||||
BOOL CHAR_JoinParty( int charaindex )
|
||||
{
|
||||
@ -272,25 +272,25 @@ BOOL CHAR_JoinParty( int charaindex )
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* 愤坌互由□ 奴赚氏匹凶日蛲 */
|
||||
/* 愤坌互由□ 奴赚氏匹凶日蛲 */
|
||||
if( CHAR_getWorkInt( charaindex, CHAR_WORKPARTYMODE) != CHAR_PARTY_NONE ) {
|
||||
lssproto_PR_send( fd, 1, FALSE);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* 及蟆及甄 毛 月 */
|
||||
/* 及蟆及甄 毛 月 */
|
||||
CHAR_getCoordinationDir( CHAR_getInt( charaindex, CHAR_DIR ) ,
|
||||
CHAR_getInt( charaindex , CHAR_X ),
|
||||
CHAR_getInt( charaindex , CHAR_Y ) ,
|
||||
1 , &x , &y );
|
||||
|
||||
/* 赓渝祭允月 */
|
||||
/* 赓渝祭允月 */
|
||||
for( i = 0; i < CONNECT_WINDOWBUFSIZE; i ++ ) {
|
||||
CONNECT_setJoinpartycharaindex(fd,i,-1);
|
||||
}
|
||||
cnt = 0;
|
||||
|
||||
/*愤坌及 及蟆及平乓仿毛潸 允月 */
|
||||
/*愤坌及 及蟆及平乓仿毛潸 允月 */
|
||||
|
||||
for( object = MAP_getTopObj( CHAR_getInt( charaindex, CHAR_FLOOR),x,y) ;
|
||||
object ;
|
||||
@ -301,7 +301,7 @@ BOOL CHAR_JoinParty( int charaindex )
|
||||
int objindex = GET_OBJINDEX(object);
|
||||
int targetindex = -1;
|
||||
|
||||
/* 平乓仿弁正□元扎卅中 */
|
||||
/* 平乓仿弁正□元扎卅中 */
|
||||
if( OBJECT_getType( objindex) != OBJTYPE_CHARA) continue;
|
||||
toindex = OBJECT_getIndex( objindex);
|
||||
|
||||
@ -317,10 +317,10 @@ BOOL CHAR_JoinParty( int charaindex )
|
||||
}
|
||||
// shan end
|
||||
|
||||
/* 皿伊奶乩□及凛 */
|
||||
/* 皿伊奶乩□及凛 */
|
||||
if( CHAR_getInt( toindex, CHAR_WHICHTYPE) == CHAR_TYPEPLAYER || CHAR_getInt(toindex, CHAR_WHICHTYPE) == CHAR_TYPEPLAYERNPC){
|
||||
found = TRUE;
|
||||
/* 锹澎互阂分匀凶日褪毛娄匀舰曰请允 */
|
||||
/* 锹澎互阂分匀凶日褪毛娄匀舰曰请允 */
|
||||
if( CHAR_getWorkInt( toindex, CHAR_WORKPARTYMODE) == CHAR_PARTY_CLIENT ) {
|
||||
targetindex = CHAR_getWorkInt( toindex, CHAR_WORKPARTYINDEX1);
|
||||
if( !CHAR_CHECKINDEX( targetindex) ) {
|
||||
@ -335,32 +335,32 @@ BOOL CHAR_JoinParty( int charaindex )
|
||||
targetindex = toindex;
|
||||
}
|
||||
|
||||
/* 褪午 ㄠ汹动 卞中月井 */
|
||||
/* 褪午 ㄠ汹动 卞中月井 */
|
||||
if( NPC_Util_CharDistance( charaindex, targetindex ) > 1) {
|
||||
continue;
|
||||
}
|
||||
|
||||
/* 爵 反匹卅中仪[*/
|
||||
/* 爵 反匹卅中仪[*/
|
||||
if( CHAR_getWorkInt( targetindex, CHAR_WORKBATTLEMODE) != BATTLE_CHARMODE_NONE ){
|
||||
continue;
|
||||
}
|
||||
/* 醮棉袱第乒□玉井 */
|
||||
/* 醮棉袱第乒□玉井 */
|
||||
if( !CHAR_getFlg( targetindex, CHAR_ISPARTY) ) continue;
|
||||
|
||||
#ifdef _ANGEL_SUMMON
|
||||
if( CHAR_getWorkInt( targetindex, CHAR_WORKANGELMODE) == TRUE) {
|
||||
CHAR_talkToCli( charaindex, -1, "使者不可以当领队。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( charaindex, -1, "使者不可以当领队。", CHAR_COLORYELLOW);
|
||||
continue;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
/* 穴件乒旦田旦互中月凛反]谛棉方曰穸燮允月[ */
|
||||
/* 穴件乒旦田旦互中月凛反]谛棉方曰穸燮允月[ */
|
||||
else if( CHAR_getInt( toindex, CHAR_WHICHTYPE) == CHAR_TYPEBUS ) {
|
||||
targetindex = toindex;
|
||||
cnt = 0;
|
||||
if( !NPC_BusCheckJoinParty( toindex, charaindex, TRUE)) {
|
||||
/* 椭瘀毛 凶今卅井匀凶[醮棉 月及反蔽歹月[谛棉及质 手仄卅中[
|
||||
* 支支仇仄中及匹[
|
||||
/* 椭瘀毛 凶今卅井匀凶[醮棉 月及反蔽歹月[谛棉及质 手仄卅中[
|
||||
* 支支仇仄中及匹[
|
||||
*/
|
||||
break;
|
||||
}
|
||||
@ -386,34 +386,34 @@ BOOL CHAR_JoinParty( int charaindex )
|
||||
}
|
||||
}
|
||||
}
|
||||
/* 皿伊奶乩□坭反穴件乒旦田旦动陆反 骰允月 */
|
||||
/* 皿伊奶乩□坭反穴件乒旦田旦动陆反 骰允月 */
|
||||
else {
|
||||
continue;
|
||||
}
|
||||
|
||||
/* 锹澎由□ 奴及谛醒反 井" */
|
||||
/* 锹澎由□ 奴及谛醒反 井" */
|
||||
parray = CHAR_getEmptyPartyArray( targetindex) ;
|
||||
if( parray == -1 ) continue;
|
||||
|
||||
/* 仇仇引匹仁木壬 */
|
||||
/* 仇仇引匹仁木壬 */
|
||||
CONNECT_setJoinpartycharaindex( fd,cnt,toindex);
|
||||
cnt++;
|
||||
if( cnt == CONNECT_WINDOWBUFSIZE ) break;
|
||||
|
||||
/* 穴件乒旦田旦 苇仄分中]伙□皿毛 仃月[ */
|
||||
/* 穴件乒旦田旦 苇仄分中]伙□皿毛 仃月[ */
|
||||
if( CHAR_getInt( targetindex, CHAR_WHICHTYPE) == CHAR_TYPEBUS ) break;
|
||||
|
||||
}
|
||||
|
||||
if( cnt == 0 ) {
|
||||
if( found == TRUE) {
|
||||
CHAR_talkToCli( charaindex, -1, "无法加入团队。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( charaindex, -1, "无法加入团队。", CHAR_COLORYELLOW);
|
||||
}
|
||||
result = FALSE;
|
||||
}else if( cnt == 1 ) {
|
||||
#ifdef _AUTO_PK
|
||||
if(CHAR_getInt(charaindex,CHAR_FLOOR)==20000){
|
||||
CHAR_talkToCli( charaindex, -1, "单P系统禁止组队!", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( charaindex, -1, "单P系统禁止组队!", CHAR_COLORYELLOW);
|
||||
result = FALSE;
|
||||
}else
|
||||
#endif
|
||||
@ -425,7 +425,7 @@ BOOL CHAR_JoinParty( int charaindex )
|
||||
int strlength;
|
||||
char msgbuf[1024];
|
||||
char escapebuf[2048];
|
||||
strcpy( msgbuf, "1\n和谁组成团队呢?\n");
|
||||
strcpy( msgbuf, "1\n和谁组成团队呢?\n");
|
||||
strlength = strlen( msgbuf);
|
||||
for( i = 0;
|
||||
CONNECT_getJoinpartycharaindex( fd,i ) != -1
|
||||
@ -436,7 +436,7 @@ BOOL CHAR_JoinParty( int charaindex )
|
||||
char buf[256];
|
||||
snprintf( buf, sizeof( buf),"%s\n", a);
|
||||
if( strlength + strlen( buf) > arraysizeof( msgbuf)){
|
||||
print( "%s:%d视窗讯息buffer不足。\n",
|
||||
print( "%s:%d视窗讯息buffer不足。\n",
|
||||
__FILE__,__LINE__);
|
||||
break;
|
||||
}
|
||||
@ -490,15 +490,15 @@ static BOOL CHAR_DischargePartySub( int charaindex, int msgflg)
|
||||
CHAR_setWorkInt( pindex, CHAR_WORKPARTYINDEX1, -1);
|
||||
CHAR_setWorkInt( pindex, CHAR_WORKPARTYMODE, CHAR_PARTY_NONE);
|
||||
if( msgflg ){
|
||||
CHAR_talkToCli( pindex, -1, "团队已解散!", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( pindex, -1, "团队已解散!", CHAR_COLORYELLOW);
|
||||
#ifdef _ITEM_QUITPARTY
|
||||
// won fix
|
||||
for( j=0;j<CHAR_MAXITEMHAVE;j++ ){
|
||||
int del_item_index = CHAR_getItemIndex( pindex , j );
|
||||
if( ITEM_CHECKINDEX(del_item_index) ){ //格子内有道具
|
||||
if( ITEM_CHECKINDEX(del_item_index) ){ //格子内有道具
|
||||
for( k=0;k<itemquitparty_num;k++ ){
|
||||
if( ITEM_getInt( del_item_index, ITEM_ID) == atoi(Disappear_Item[k].string) ){ //若等於所设定的道具ID
|
||||
CHAR_setItemIndex( pindex, j, -1); //格子内道具消失
|
||||
if( ITEM_getInt( del_item_index, ITEM_ID) == atoi(Disappear_Item[k].string) ){ //若等於所设定的道具ID
|
||||
CHAR_setItemIndex( pindex, j, -1); //格子内道具消失
|
||||
ITEM_endExistItemsOne( del_item_index );
|
||||
CHAR_sendItemDataOne( pindex, j);
|
||||
}
|
||||
@ -579,22 +579,22 @@ static BOOL CHAR_DischargePartySub( int charaindex, int msgflg)
|
||||
}
|
||||
}
|
||||
if( myarray == CHAR_PARTYMAX) {
|
||||
print( "DischargeParty(): 真奇怪!");
|
||||
print( "DischargeParty(): 真奇怪!");
|
||||
return FALSE;
|
||||
}
|
||||
CHAR_setWorkInt( toindex, CHAR_WORKPARTYINDEX1 + myarray, -1);
|
||||
snprintf( buf,sizeof( buf), "%s 脱离团队!",
|
||||
snprintf( buf,sizeof( buf), "%s 脱离团队!",
|
||||
CHAR_getChar( charaindex, CHAR_NAME));
|
||||
if( msgflg ){
|
||||
CHAR_talkToCli( charaindex, -1, "脱离团队!", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( charaindex, -1, "脱离团队!", CHAR_COLORYELLOW);
|
||||
#ifdef _ITEM_QUITPARTY
|
||||
// won fix
|
||||
for( i=0;i<CHAR_MAXITEMHAVE;i++ ){
|
||||
int del_item_index = CHAR_getItemIndex( charaindex , j );
|
||||
if( ITEM_CHECKINDEX(del_item_index) ){ //格子内有道具
|
||||
if( ITEM_CHECKINDEX(del_item_index) ){ //格子内有道具
|
||||
for( j=0;j<itemquitparty_num;j++ ){
|
||||
if( ITEM_getInt( del_item_index, ITEM_ID) == atoi(Disappear_Item[j].string) ){ //若等於所设定的道具ID
|
||||
CHAR_setItemIndex( charaindex, i, -1); //格子内道具消失
|
||||
if( ITEM_getInt( del_item_index, ITEM_ID) == atoi(Disappear_Item[j].string) ){ //若等於所设定的道具ID
|
||||
CHAR_setItemIndex( charaindex, i, -1); //格子内道具消失
|
||||
ITEM_endExistItemsOne( del_item_index );
|
||||
CHAR_sendItemDataOne( charaindex, i);
|
||||
}
|
||||
@ -614,10 +614,10 @@ static BOOL CHAR_DischargePartySub( int charaindex, int msgflg)
|
||||
// won fix
|
||||
for( j=0;j<CHAR_MAXITEMHAVE;j++ ){
|
||||
int del_item_index = CHAR_getItemIndex( index , j );
|
||||
if( ITEM_CHECKINDEX(del_item_index) ){ //格子内有道具
|
||||
if( ITEM_CHECKINDEX(del_item_index) ){ //格子内有道具
|
||||
for( k=0;k<itemquitparty_num;k++ ){
|
||||
if( ITEM_getInt( del_item_index, ITEM_ID) == atoi(Disappear_Item[k].string) ){ //若等於所设定的道具ID
|
||||
CHAR_setItemIndex( index, j, -1); //格子内道具消失
|
||||
if( ITEM_getInt( del_item_index, ITEM_ID) == atoi(Disappear_Item[k].string) ){ //若等於所设定的道具ID
|
||||
CHAR_setItemIndex( index, j, -1); //格子内道具消失
|
||||
ITEM_endExistItemsOne( del_item_index );
|
||||
CHAR_sendItemDataOne( index, j);
|
||||
}
|
||||
@ -682,7 +682,7 @@ BOOL CHAR_DischargePartyNoMsg( int charaindex)
|
||||
|
||||
|
||||
/*------------------------------------------------------------
|
||||
* 愤坌互伉□母□井升丹井毛霜耨允月[
|
||||
* 愤坌互伉□母□井升丹井毛霜耨允月[
|
||||
------------------------------------------------------------*/
|
||||
void CHAR_sendLeader( int objindex, int leader)
|
||||
{
|
||||
@ -691,19 +691,19 @@ void CHAR_sendLeader( int objindex, int leader)
|
||||
CHAR_sendWatchEvent( objindex,CHAR_ACTLEADER,opt,1,TRUE);
|
||||
}
|
||||
/*------------------------------------------------------------
|
||||
* 醮棉毛赐 CHAR_WORKPARTYINDEX)隙烂匹平乓仿index毛娄匀舰月[
|
||||
* 愤坌互褪匹手阂匹手 [
|
||||
* 醮棉毛赐 CHAR_WORKPARTYINDEX)隙烂匹平乓仿index毛娄匀舰月[
|
||||
* 愤坌互褪匹手阂匹手 [
|
||||
------------------------------------------------------------*/
|
||||
int CHAR_getPartyIndex( int index, int num)
|
||||
{
|
||||
int nindex = -1;
|
||||
|
||||
/* 醮棉及奶件犯永弁旦毛潸 */
|
||||
/* 褪及桦宁 */
|
||||
/* 醮棉及奶件犯永弁旦毛潸 */
|
||||
/* 褪及桦宁 */
|
||||
if( CHAR_getWorkInt( index, CHAR_WORKPARTYMODE) == CHAR_PARTY_LEADER ) {
|
||||
nindex = CHAR_getWorkInt( index, CHAR_WORKPARTYINDEX1 + num );
|
||||
}
|
||||
/* 阂及桦宁 */
|
||||
/* 阂及桦宁 */
|
||||
else {
|
||||
int oyaindex = CHAR_getWorkInt( index, CHAR_WORKPARTYINDEX1);
|
||||
if( CHAR_CHECKINDEX( oyaindex)) {
|
||||
@ -713,14 +713,14 @@ int CHAR_getPartyIndex( int index, int num)
|
||||
return nindex;
|
||||
}
|
||||
/*------------------------------------------------------------
|
||||
* 丢永本□斥毛霜耨允月[
|
||||
* 醮棉互中木壬公及醮棉卞手丢永本□斥毛霜耨允月[
|
||||
* 丢永本□斥毛霜耨允月[
|
||||
* 醮棉互中木壬公及醮棉卞手丢永本□斥毛霜耨允月[
|
||||
------------------------------------------------------------*/
|
||||
void CHAR_talkToCliAndParty( int talkedcharaindex,int talkcharaindex,
|
||||
char* message, CHAR_COLOR color )
|
||||
{
|
||||
int i;
|
||||
/* 引内愤坌 */
|
||||
/* 引内愤坌 */
|
||||
CHAR_talkToCli( talkedcharaindex, talkcharaindex, message, color);
|
||||
|
||||
for( i = 0; i < CHAR_PARTYMAX; i ++ ) {
|
||||
|
756
char/char_talk.c
756
char/char_talk.c
File diff suppressed because it is too large
Load Diff
184
char/char_walk.c
184
char/char_walk.c
@ -72,23 +72,23 @@ static CHAR_WALKRET CHAR_walk_turn( int index, int dir )
|
||||
|
||||
|
||||
/*------------------------------------------------------------
|
||||
* n 汹 汹中凶map毛霜月
|
||||
* 娄醒
|
||||
* index int 平乓仿及奶件犯永弁旦
|
||||
* fl int 白夫失ID
|
||||
* ox int 蟆及橇谪及x
|
||||
* oy int 蟆及橇谪及y
|
||||
* fx int 汹中凶 及x
|
||||
* fy int 汹中凶 及y
|
||||
* 忒曰袄
|
||||
* 卅仄
|
||||
* n 汹 汹中凶map毛霜月
|
||||
* 娄醒
|
||||
* index int 平乓仿及奶件犯永弁旦
|
||||
* fl int 白夫失ID
|
||||
* ox int 蟆及橇谪及x
|
||||
* oy int 蟆及橇谪及y
|
||||
* fx int 汹中凶 及x
|
||||
* fy int 汹中凶 及y
|
||||
* 忒曰袄
|
||||
* 卅仄
|
||||
------------------------------------------------------------*/
|
||||
static void CHAR_sendMapAtWalk( int index, int fl ,int ox ,int oy,
|
||||
int fx, int fy )
|
||||
{
|
||||
/*
|
||||
* 蜇箕及袄午}蟆引匹及袄及犒毛苇月
|
||||
* 仇丹允月午}伐□皿NPC手棵签分[
|
||||
* 蜇箕及袄午}蟆引匹及袄及犒毛苇月
|
||||
* 仇丹允月午}伐□皿NPC手棵签分[
|
||||
*/
|
||||
int vx,vy;
|
||||
const int seesiz = MAP_CHAR_DEFAULTSEESIZ;
|
||||
@ -98,8 +98,8 @@ static void CHAR_sendMapAtWalk( int index, int fl ,int ox ,int oy,
|
||||
vx = fx - ox;
|
||||
vy = fy - oy;
|
||||
|
||||
if( ABS(vx) >= seesiz/2 || /* 犒互 五中 */
|
||||
ABS(vy) >= seesiz/2 ){ /* 犒互 五中 */
|
||||
if( ABS(vx) >= seesiz/2 || /* 犒互 五中 */
|
||||
ABS(vy) >= seesiz/2 ){ /* 犒互 五中 */
|
||||
return;
|
||||
|
||||
}else{
|
||||
@ -110,12 +110,12 @@ static void CHAR_sendMapAtWalk( int index, int fl ,int ox ,int oy,
|
||||
int absx = ABS(vx);
|
||||
int absy = ABS(vy);
|
||||
/*
|
||||
* 夫午勾聂户卞旦正□玄毛潸月及午}vx , vy 井日1夫仁及互禾奶件玄
|
||||
* 蟆午井今卅日卅中方丹卞}
|
||||
* clipRect 反 w,h 0 毛心午户化中月
|
||||
* 夫午勾聂户卞旦正□玄毛潸月及午}vx , vy 井日1夫仁及互禾奶件玄
|
||||
* 蟆午井今卅日卅中方丹卞}
|
||||
* clipRect 反 w,h 0 毛心午户化中月
|
||||
*/
|
||||
|
||||
/* == 0 及凛反霜日卅仁化方中 */
|
||||
/* == 0 及凛反霜日卅仁化方中 */
|
||||
if( vx != 0 ){
|
||||
if( vx > 0 ){
|
||||
send.x = oldlux + seesiz;
|
||||
@ -150,7 +150,7 @@ static void CHAR_sendMapAtWalk( int index, int fl ,int ox ,int oy,
|
||||
}
|
||||
}
|
||||
|
||||
/* == 0 及凛反霜日卅仁化方中 */
|
||||
/* == 0 及凛反霜日卅仁化方中 */
|
||||
if( vy != 0 ){
|
||||
if( vy > 0 ){
|
||||
send.y = oldluy + seesiz;
|
||||
@ -189,11 +189,11 @@ static void CHAR_sendMapAtWalk( int index, int fl ,int ox ,int oy,
|
||||
}
|
||||
static CHAR_WALKRET CHAR_walk_move( int charaindex, int dir );
|
||||
/*------------------------------------------------------------
|
||||
* 啖 允月[
|
||||
* 娄醒
|
||||
* index int 平乓仿及奶件犯永弁旦
|
||||
* dir int 轾
|
||||
* 忒曰袄
|
||||
* 啖 允月[
|
||||
* 娄醒
|
||||
* index int 平乓仿及奶件犯永弁旦
|
||||
* dir int 轾
|
||||
* 忒曰袄
|
||||
* CHAR_WALKRET
|
||||
------------------------------------------------------------*/
|
||||
static CHAR_WALKRET CHAR_walk_move( int charaindex, int dir )
|
||||
@ -317,7 +317,7 @@ static CHAR_WALKRET CHAR_walk_move( int charaindex, int dir )
|
||||
#endif
|
||||
if( !CHAR_getFlg( OBJECT_getIndex(objindex),CHAR_ISOVERED) ){
|
||||
if(!CHAR_CHECKINDEX(OBJECT_getIndex(objindex))){
|
||||
printf("自动删除一个问题对象!");
|
||||
printf("自动删除一个问题对象!");
|
||||
endObjectOne(objindex);
|
||||
break;
|
||||
}
|
||||
@ -380,7 +380,7 @@ static CHAR_WALKRET CHAR_walk_move( int charaindex, int dir )
|
||||
ox = OBJECT_setX(objindex,CHAR_getInt(charaindex,CHAR_X));
|
||||
oy = OBJECT_setY(objindex,CHAR_getInt(charaindex,CHAR_Y));
|
||||
if( !MAP_objmove( objindex, of,ox,oy,ff,fx,fy ) ){
|
||||
/* 仇氏卅氏升丹仄方丹手卅中 */
|
||||
/* 仇氏卅氏升丹仄方丹手卅中 */
|
||||
fprint( "ERROR MAP_OBJMOVE objindex=%d(%s)\n",objindex,
|
||||
CHAR_getUseName( charaindex ) );
|
||||
}
|
||||
@ -427,10 +427,10 @@ static CHAR_WALKRET CHAR_walk_move( int charaindex, int dir )
|
||||
ofunc = (OFFFUNC)CHAR_getFunctionPointer( OBJECT_getIndex(objindex), CHAR_OFFFUNC);
|
||||
break;
|
||||
case OBJTYPE_ITEM:
|
||||
/* 卞窒手仄卅中 */
|
||||
/* 卞窒手仄卅中 */
|
||||
break;
|
||||
case OBJTYPE_GOLD:
|
||||
/* 卞窒手仄卅中 */
|
||||
/* 卞窒手仄卅中 */
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@ -478,7 +478,7 @@ CHAR_AFTERWALK:
|
||||
if( count > 0 ) {
|
||||
CHAR_setWorkInt( charaindex, CHAR_WORK_TOHELOS_COUNT, count -1);
|
||||
if( count -1 == 0 ) {
|
||||
CHAR_talkToCli( charaindex, -1, "道具的效力已到。", CHAR_COLORWHITE);
|
||||
CHAR_talkToCli( charaindex, -1, "道具的效力已到。", CHAR_COLORWHITE);
|
||||
}
|
||||
}
|
||||
par = ENCOUNT_getEncountPercentMin( charaindex, of,ox,oy);
|
||||
@ -539,12 +539,12 @@ CHAR_AFTERWALK:
|
||||
int minep = CHAR_getWorkInt(charaindex, CHAR_WORKENCOUNTPROBABILITY_MIN);
|
||||
int cep = CONNECT_get_CEP(enfd);
|
||||
|
||||
#ifdef _PROFESSION_SKILL // WON ADD 人物职业技能
|
||||
#ifdef _PROFESSION_SKILL // WON ADD 人物职业技能
|
||||
int temp=0;
|
||||
int p_cep = CHAR_getWorkInt(charaindex, CHAR_ENCOUNT_FIX);
|
||||
if( p_cep != 0 ){
|
||||
if( CHAR_getWorkInt( charaindex, CHAR_ENCOUNT_NUM) < (int)time(NULL) ){
|
||||
CHAR_talkToCli( charaindex, -1, "技能效用结束。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( charaindex, -1, "技能效用结束。", CHAR_COLORYELLOW);
|
||||
CHAR_setWorkInt( charaindex, CHAR_ENCOUNT_FIX, 0);
|
||||
CHAR_setWorkInt( charaindex, CHAR_ENCOUNT_NUM, 0);
|
||||
}
|
||||
@ -586,7 +586,7 @@ CHAR_AFTERWALK:
|
||||
}
|
||||
|
||||
|
||||
#ifdef _PROFESSION_SKILL // WON ADD 人物职业技能
|
||||
#ifdef _PROFESSION_SKILL // WON ADD 人物职业技能
|
||||
#ifdef _ENEMY_ACTION
|
||||
if( rand()%(120*getEnemyAction()) < temp ){
|
||||
#else
|
||||
@ -666,12 +666,12 @@ CHAR_AFTERWALK:
|
||||
}
|
||||
|
||||
/*------------------------------------------------------------
|
||||
* 平乓仿互汹仁[
|
||||
* 娄醒
|
||||
* index int Char匹及index
|
||||
* dir int 轾
|
||||
* mode int 0卅日汹仁[1卅日 轾鳖晶[
|
||||
* 忒曰袄
|
||||
* 平乓仿互汹仁[
|
||||
* 娄醒
|
||||
* index int Char匹及index
|
||||
* dir int 轾
|
||||
* mode int 0卅日汹仁[1卅日 轾鳖晶[
|
||||
* 忒曰袄
|
||||
* CHAR_WALKRET
|
||||
------------------------------------------------------------*/
|
||||
CHAR_WALKRET CHAR_walk( int index, int dir, int mode)
|
||||
@ -737,11 +737,11 @@ CHAR_WALKRET CHAR_walk_jjc( int index, int floor, int ox, int oy, int dir)
|
||||
}
|
||||
#endif
|
||||
/*------------------------------------------------------------
|
||||
* 汹井六月蟆赏 [
|
||||
* 娄醒
|
||||
* index int 平乓仿奶件犯永弁旦
|
||||
* 忒曰袄
|
||||
* 卅仄
|
||||
* 汹井六月蟆赏 [
|
||||
* 娄醒
|
||||
* index int 平乓仿奶件犯永弁旦
|
||||
* 忒曰袄
|
||||
* 卅仄
|
||||
------------------------------------------------------------*/
|
||||
void CHAR_walkcall( int index )
|
||||
{
|
||||
@ -756,8 +756,8 @@ void CHAR_walkcall( int index )
|
||||
CHAR_getWorkChar(index,CHAR_WORKWALKARRAY));
|
||||
|
||||
CHAR_ctodirmode( tmp[0], &dir ,&mode );
|
||||
/* 褪卅日仪蟆卞桦赭毛筏盛仄化云仁
|
||||
* 褪及 仁蟆及桦赭毛 卞阂互啖 允月啃
|
||||
/* 褪卅日仪蟆卞桦赭毛筏盛仄化云仁
|
||||
* 褪及 仁蟆及桦赭毛 卞阂互啖 允月啃
|
||||
*/
|
||||
if( CHAR_getInt( index, CHAR_WHICHTYPE) == CHAR_TYPEPLAYER ) {
|
||||
if( CHAR_getWorkInt( index, CHAR_WORKPARTYMODE ) == CHAR_PARTY_LEADER ) {
|
||||
@ -766,11 +766,11 @@ void CHAR_walkcall( int index )
|
||||
}
|
||||
}
|
||||
|
||||
/* 汹仁 */
|
||||
/* 汹仁 */
|
||||
ret = CHAR_walk( index , dir ,mode );
|
||||
|
||||
if( mode == 0 && ret == CHAR_WALKSUCCESSED ) {
|
||||
/* 愤坌互褪卅日醮棉毛汹井六月 */
|
||||
/* 愤坌互褪卅日醮棉毛汹井六月 */
|
||||
if( CHAR_getInt( index, CHAR_WHICHTYPE) == CHAR_TYPEPLAYER ) {
|
||||
|
||||
|
||||
@ -780,13 +780,13 @@ void CHAR_walkcall( int index )
|
||||
int toindex = CHAR_getWorkInt( index, i + CHAR_WORKPARTYINDEX1);
|
||||
if( CHAR_CHECKINDEX(toindex) ) {
|
||||
int parent_dir;
|
||||
/* 阂及匏 午]褪及汹五蟆及匏 井日 轾毛菲户月 */
|
||||
/* 汹仁 */
|
||||
/* 阂及匏 午]褪及汹五蟆及匏 井日 轾毛菲户月 */
|
||||
/* 汹仁 */
|
||||
start.x = CHAR_getInt( toindex, CHAR_X);
|
||||
start.y = CHAR_getInt( toindex, CHAR_Y);
|
||||
parent_dir = NPC_Util_getDirFromTwoPoint( &start,&end );
|
||||
/* 弘仿犯奴它旦左皿扑亦件汹五毛 蜇允月啃卞]
|
||||
* 戚及阂反蟆及阂及 毛馨丹方丹卞允月
|
||||
/* 弘仿犯奴它旦左皿扑亦件汹五毛 蜇允月啃卞]
|
||||
* 戚及阂反蟆及阂及 毛馨丹方丹卞允月
|
||||
*/
|
||||
end = start;
|
||||
if( parent_dir != -1 ) {
|
||||
@ -798,8 +798,8 @@ void CHAR_walkcall( int index )
|
||||
int petindex = CHAR_getWorkInt( toindex, CHAR_WORKPETFOLLOW);
|
||||
if( CHAR_CHECKINDEX(petindex) ) {
|
||||
int parent_dir;
|
||||
/* 阂及匏 午]褪及汹五蟆及匏 井日 轾毛菲户月 */
|
||||
/* 汹仁 */
|
||||
/* 阂及匏 午]褪及汹五蟆及匏 井日 轾毛菲户月 */
|
||||
/* 汹仁 */
|
||||
end.x = CHAR_getInt( toindex, CHAR_X);
|
||||
end.y = CHAR_getInt( toindex, CHAR_Y);
|
||||
start.x = CHAR_getInt( petindex, CHAR_X);
|
||||
@ -834,7 +834,7 @@ void CHAR_walkcall( int index )
|
||||
}
|
||||
}
|
||||
else {
|
||||
/* 赓渝祭仄卅云允 */
|
||||
/* 赓渝祭仄卅云允 */
|
||||
CHAR_setWorkInt( index, i+CHAR_WORKPARTYINDEX1, -1);
|
||||
}
|
||||
}
|
||||
@ -845,8 +845,8 @@ void CHAR_walkcall( int index )
|
||||
int petindex = CHAR_getWorkInt( index, CHAR_WORKPETFOLLOW);
|
||||
if( CHAR_CHECKINDEX(petindex) ) {
|
||||
int parent_dir;
|
||||
/* 阂及匏 午]褪及汹五蟆及匏 井日 轾毛菲户月 */
|
||||
/* 汹仁 */
|
||||
/* 阂及匏 午]褪及汹五蟆及匏 井日 轾毛菲户月 */
|
||||
/* 汹仁 */
|
||||
end.x = CHAR_getInt( index, CHAR_X);
|
||||
end.y = CHAR_getInt( index, CHAR_Y);
|
||||
start.x = CHAR_getInt( petindex, CHAR_X);
|
||||
@ -862,8 +862,8 @@ void CHAR_walkcall( int index )
|
||||
//if( (end.x == start.x) && (end.x == start.y) )
|
||||
// parent_dir = -1;
|
||||
|
||||
/* 弘仿犯奴它旦左皿扑亦件汹五毛 蜇允月啃卞]
|
||||
* 戚及阂反蟆及阂及 毛馨丹方丹卞允月
|
||||
/* 弘仿犯奴它旦左皿扑亦件汹五毛 蜇允月啃卞]
|
||||
* 戚及阂反蟆及阂及 毛馨丹方丹卞允月
|
||||
*/
|
||||
//print(" pdir:%d sx:%d sy:%d ex:%d ey:%d ",
|
||||
// parent_dir, start.x, start.y, end.x, end.y );
|
||||
@ -887,7 +887,7 @@ void CHAR_walkcall( int index )
|
||||
}
|
||||
}
|
||||
else {
|
||||
/* 赓渝祭仄卅云允 */
|
||||
/* 赓渝祭仄卅云允 */
|
||||
CHAR_setWorkInt( index, CHAR_WORKPETFOLLOW, -1);
|
||||
}
|
||||
|
||||
@ -899,8 +899,8 @@ void CHAR_walkcall( int index )
|
||||
}
|
||||
|
||||
/* 99/03/09 By Kawata */
|
||||
/* walk及瑛绊}WALKARRAY互弁伉失今木化中月桦宁互丐月及匹
|
||||
* 潸曰 仄化戊疋月
|
||||
/* walk及瑛绊}WALKARRAY互弁伉失今木化中月桦宁互丐月及匹
|
||||
* 潸曰 仄化戊疋月
|
||||
*/
|
||||
strcpysafe( tmp ,sizeof(tmp),
|
||||
CHAR_getWorkChar(index,CHAR_WORKWALKARRAY));
|
||||
@ -908,7 +908,7 @@ void CHAR_walkcall( int index )
|
||||
CHAR_setWorkChar(index,CHAR_WORKWALKARRAY,&tmp[1]);
|
||||
}
|
||||
|
||||
/* 凛棉毛褡户月 */
|
||||
/* 凛棉毛褡户月 */
|
||||
CHAR_setWorkInt( index, CHAR_WORKWALKSTARTSEC , NowTime.tv_sec );
|
||||
CHAR_setWorkInt( index, CHAR_WORKWALKSTARTMSEC , NowTime.tv_usec );
|
||||
}
|
||||
@ -916,13 +916,13 @@ void CHAR_walkcall( int index )
|
||||
|
||||
|
||||
/*------------------------------------------------------------
|
||||
* 汹五铵户毛瓒 允月[
|
||||
* 娄醒
|
||||
* index int 平乓仿 匹及奶件犯永弁旦
|
||||
* dir char* 轾 侬
|
||||
* 汹五铵户毛瓒 允月[
|
||||
* 娄醒
|
||||
* index int 平乓仿 匹及奶件犯永弁旦
|
||||
* dir char* 轾 侬
|
||||
* id int ID
|
||||
* 忒曰袄
|
||||
* 卅仄
|
||||
* 忒曰袄
|
||||
* 卅仄
|
||||
------------------------------------------------------------*/
|
||||
void CHAR_walk_start(int index, int x, int y, char* dir, BOOL mapsendmode )
|
||||
{
|
||||
@ -937,7 +937,7 @@ void CHAR_walk_start(int index, int x, int y, char* dir, BOOL mapsendmode )
|
||||
ox = CHAR_getInt(index,CHAR_X);
|
||||
oy = CHAR_getInt(index,CHAR_Y);
|
||||
if ( ABS(x - ox) > seesiz || ABS(y - oy) > seesiz ) {
|
||||
CHAR_talkToCli(index, -1, "因座标错误而断线。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli(index, -1, "因座标错误而断线。", CHAR_COLORYELLOW);
|
||||
CONNECT_setCloseRequest_debug(getfdFromCharaIndex(index) , 1);
|
||||
return;
|
||||
}
|
||||
@ -985,13 +985,13 @@ void CHAR_walk_start(int index, int x, int y, char* dir, BOOL mapsendmode )
|
||||
if( strlen( dir ) >= 1 ) CHAR_walkcall( index );
|
||||
}
|
||||
/*------------------------------------------------------------
|
||||
* 汹五及 赓
|
||||
* 娄醒
|
||||
* index int 平乓仿 匹及奶件犯永弁旦
|
||||
* dir char* 轾 侬
|
||||
* 汹五及 赓
|
||||
* 娄醒
|
||||
* index int 平乓仿 匹及奶件犯永弁旦
|
||||
* dir char* 轾 侬
|
||||
* id int ID
|
||||
* 忒曰袄
|
||||
* 卅仄
|
||||
* 忒曰袄
|
||||
* 卅仄
|
||||
------------------------------------------------------------*/
|
||||
void CHAR_walk_init( int fd, int x, int y, char *direction, BOOL mapsendmode)
|
||||
{
|
||||
@ -1015,7 +1015,7 @@ void CHAR_walk_init( int fd, int x, int y, char *direction, BOOL mapsendmode)
|
||||
int dir, mode;
|
||||
CHAR_ctodirmode( direction[0], &dir ,&mode );
|
||||
if( mode == 0 ) {
|
||||
//print( "玩家并非领队也非单人玩家。\n");
|
||||
//print( "玩家并非领队也非单人玩家。\n");
|
||||
}else {
|
||||
CHAR_walk_start( CONNECT_getCharaindex(fd),
|
||||
x,y,direction, FALSE );
|
||||
@ -1153,7 +1153,7 @@ void CHAR_sendCharaAtWalk( int charaindex, int of,int ox,int oy,int xflg, int y
|
||||
//print(" %s[%d]: BATTLE_CHECKINDEX( %d) err!!\n", __FILE__, __LINE__, battleno);
|
||||
}else {
|
||||
helpno = (BattleArray[ battleno].Side[ sideno].flg & BSIDE_FLG_HELP_OK) ? TRUE:FALSE;
|
||||
/* HelpNo = 1 反移 */
|
||||
/* HelpNo = 1 反移 */
|
||||
if( CHAR_makeCAOPT3String( objindex, cabuf, sizeof( cabuf),
|
||||
CHAR_ACTBATTLE, battleno,sideno,helpno )){
|
||||
CONNECT_appendCAbuf( fd,cabuf,strlen(cabuf));
|
||||
@ -1213,7 +1213,7 @@ void CHAR_sendCharaAtWalk( int charaindex, int of,int ox,int oy,int xflg, int y
|
||||
if( OBJECT_getType(objindex) == OBJTYPE_CHARA &&
|
||||
!CHAR_getFlg(OBJECT_getIndex(objindex), CHAR_ISVISIBLE) ){
|
||||
if(!CHAR_CHECKINDEX(OBJECT_getIndex(objindex))){
|
||||
printf("自动删除一个问题对象!");
|
||||
printf("自动删除一个问题对象!");
|
||||
endObjectOne(objindex);
|
||||
}
|
||||
continue;
|
||||
@ -1362,7 +1362,7 @@ void CHAR_sendCharaAtWalk( int charaindex, int of,int ox,int oy,int xflg, int y
|
||||
if(strlen( c_msg[4]) > 0){
|
||||
//print("\nc_msg[4]=%s,strpos[4]=%d\n",c_msg[4],strpos[4]);
|
||||
lssproto_C_send( fd, c_msg[4]);
|
||||
}//修复人多关闭外挂
|
||||
}//修复人多关闭外挂
|
||||
}
|
||||
|
||||
static void CHAR_sendCDCharaAtWalk( int charaindex, int of, int ox, int oy, int xflg, int yflg ){
|
||||
@ -1381,9 +1381,9 @@ static void CHAR_sendCDCharaAtWalk( int charaindex, int of, int ox, int oy, int
|
||||
x = CHAR_getInt( charaindex, CHAR_X);
|
||||
y = CHAR_getInt( charaindex, CHAR_Y);
|
||||
|
||||
if( of != fl || /* 白夫失互啜丹 */
|
||||
ABS(x - ox) > seesiz/2 || /* 犒互 五中 */
|
||||
ABS(y - oy) > seesiz/2 ) /* 犒互 五中 */
|
||||
if( of != fl || /* 白夫失互啜丹 */
|
||||
ABS(x - ox) > seesiz/2 || /* 犒互 五中 */
|
||||
ABS(y - oy) > seesiz/2 ) /* 犒互 五中 */
|
||||
return;
|
||||
|
||||
fd = getfdFromCharaIndex( charaindex );
|
||||
@ -1401,7 +1401,7 @@ static void CHAR_sendCDCharaAtWalk( int charaindex, int of, int ox, int oy, int
|
||||
if( OBJECT_getType(objindex) == OBJTYPE_CHARA &&
|
||||
!CHAR_getFlg(OBJECT_getIndex(objindex), CHAR_ISVISIBLE) ){
|
||||
if(!CHAR_CHECKINDEX(OBJECT_getIndex(objindex))){
|
||||
printf("自动删除一个问题对象!");
|
||||
printf("自动删除一个问题对象!");
|
||||
endObjectOne(objindex);
|
||||
}
|
||||
continue;
|
||||
@ -1564,7 +1564,7 @@ CHAR_WALKRET CHAR_walk_jc( int charaindex, int of, int ox, int oy, int dir )
|
||||
case OBJTYPE_CHARA:
|
||||
if( !CHAR_getFlg( OBJECT_getIndex(objindex),CHAR_ISOVERED) ){
|
||||
if(!CHAR_CHECKINDEX(OBJECT_getIndex(objindex))){
|
||||
printf("自动删除一个问题对象!");
|
||||
printf("自动删除一个问题对象!");
|
||||
endObjectOne(objindex);
|
||||
break;
|
||||
}
|
||||
@ -1623,7 +1623,7 @@ CHAR_WALKRET CHAR_walk_jc( int charaindex, int of, int ox, int oy, int dir )
|
||||
ox = OBJECT_setX(objindex,CHAR_getInt(charaindex,CHAR_X));
|
||||
oy = OBJECT_setY(objindex,CHAR_getInt(charaindex,CHAR_Y));
|
||||
if( !MAP_objmove( objindex, of,ox,oy,ff,fx,fy ) ){
|
||||
/* 仇氏卅氏升丹仄方丹手卅中 */
|
||||
/* 仇氏卅氏升丹仄方丹手卅中 */
|
||||
fprint( "ERROR MAP_OBJMOVE objindex=%d(%s)\n",objindex,
|
||||
CHAR_getUseName( charaindex ) );
|
||||
}
|
||||
@ -1665,10 +1665,10 @@ CHAR_WALKRET CHAR_walk_jc( int charaindex, int of, int ox, int oy, int dir )
|
||||
ofunc = (OFFFUNC)CHAR_getFunctionPointer( OBJECT_getIndex(objindex), CHAR_OFFFUNC);
|
||||
break;
|
||||
case OBJTYPE_ITEM:
|
||||
/* 卞窒手仄卅中 */
|
||||
/* 卞窒手仄卅中 */
|
||||
break;
|
||||
case OBJTYPE_GOLD:
|
||||
/* 卞窒手仄卅中 */
|
||||
/* 卞窒手仄卅中 */
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@ -1712,11 +1712,11 @@ CHAR_AFTERWALK:
|
||||
CHAR_getInt( charaindex, CHAR_X),
|
||||
CHAR_getInt( charaindex, CHAR_Y));
|
||||
}
|
||||
count = CHAR_getWorkInt( charaindex, CHAR_WORK_TOHELOS_COUNT);//什么道具的效力
|
||||
count = CHAR_getWorkInt( charaindex, CHAR_WORK_TOHELOS_COUNT);//什么道具的效力
|
||||
if( count > 0 ) {
|
||||
CHAR_setWorkInt( charaindex, CHAR_WORK_TOHELOS_COUNT, count -1);
|
||||
if( count -1 == 0 ) {
|
||||
//CHAR_talkToCli( charaindex, -1, "道具的效力已到。", CHAR_COLORWHITE);
|
||||
//CHAR_talkToCli( charaindex, -1, "道具的效力已到。", CHAR_COLORWHITE);
|
||||
}
|
||||
}
|
||||
par = ENCOUNT_getEncountPercentMin( charaindex, of,ox,oy);
|
||||
@ -1777,12 +1777,12 @@ CHAR_AFTERWALK:
|
||||
int minep = CHAR_getWorkInt(charaindex, CHAR_WORKENCOUNTPROBABILITY_MIN);
|
||||
int cep = CONNECT_get_CEP(enfd);
|
||||
|
||||
#ifdef _PROFESSION_SKILL // WON ADD 人物职业技能
|
||||
#ifdef _PROFESSION_SKILL // WON ADD 人物职业技能
|
||||
int temp=0;
|
||||
int p_cep = CHAR_getWorkInt(charaindex, CHAR_ENCOUNT_FIX);
|
||||
if( p_cep != 0 ){
|
||||
if( CHAR_getWorkInt( charaindex, CHAR_ENCOUNT_NUM) < (int)time(NULL) ){
|
||||
CHAR_talkToCli( charaindex, -1, "技能效用结束。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( charaindex, -1, "技能效用结束。", CHAR_COLORYELLOW);
|
||||
CHAR_setWorkInt( charaindex, CHAR_ENCOUNT_FIX, 0);
|
||||
CHAR_setWorkInt( charaindex, CHAR_ENCOUNT_NUM, 0);
|
||||
}
|
||||
@ -1824,7 +1824,7 @@ CHAR_AFTERWALK:
|
||||
}
|
||||
|
||||
|
||||
#ifdef _PROFESSION_SKILL // WON ADD 人物职业技能
|
||||
#ifdef _PROFESSION_SKILL // WON ADD 人物职业技能
|
||||
#ifdef _ENEMY_ACTION
|
||||
if( rand()%(120*getEnemyAction()) < temp ){
|
||||
#else
|
||||
|
966
char/chatmagic.c
966
char/chatmagic.c
File diff suppressed because it is too large
Load Diff
@ -19,9 +19,9 @@
|
||||
|
||||
/*
|
||||
CHAR_WORKCHATROOMTYPE :
|
||||
0 : 无
|
||||
1 : 聊天室室长
|
||||
2 : 聊天室成员
|
||||
0 : 无
|
||||
1 : 聊天室室长
|
||||
2 : 聊天室成员
|
||||
*/
|
||||
typedef struct {
|
||||
BOOL useFlag ;
|
||||
@ -56,16 +56,16 @@ BOOL ChatCheck_Free( int myindex)
|
||||
return FALSE;
|
||||
old_gold = CHAR_getInt( myindex, CHAR_GOLD );
|
||||
if( old_gold < 200 ){
|
||||
CHAR_talkToCli ( myindex , -1 , "成立聊天室需花费200石币" , CHAR_COLORYELLOW );
|
||||
CHAR_talkToCli ( myindex , -1 , "成立聊天室需花费200石币" , CHAR_COLORYELLOW );
|
||||
return FALSE;
|
||||
}
|
||||
if ( CHAR_getInt ( myindex , CHAR_LV ) < 30 &&
|
||||
CHAR_getInt ( myindex , CHAR_TRANSMIGRATION ) < 1 ) {
|
||||
CHAR_talkToCli ( myindex , -1 , "成立聊天室需0转30级以上!" , CHAR_COLORYELLOW );
|
||||
CHAR_talkToCli ( myindex , -1 , "成立聊天室需0转30级以上!" , CHAR_COLORYELLOW );
|
||||
return FALSE;
|
||||
}
|
||||
if ( CHAR_getWorkInt ( myindex , CHAR_WORKCHATROOMTYPE ) != 0 ) {
|
||||
CHAR_talkToCli ( myindex , -1 , "你已经在其他聊天室中!" , CHAR_COLORYELLOW );
|
||||
CHAR_talkToCli ( myindex , -1 , "你已经在其他聊天室中!" , CHAR_COLORYELLOW );
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
@ -104,11 +104,11 @@ BOOL ChatRoom_Create ( int myindex , char *message )
|
||||
ChatRoom_Refresh ( i ) ;
|
||||
|
||||
CHAR_DelGold( myindex, 200);
|
||||
CHAR_talkToCli ( myindex , -1 , "成立聊天室扣除200石币" , CHAR_COLORYELLOW );
|
||||
CHAR_talkToCli ( myindex , -1 , "成立聊天室扣除200石币" , CHAR_COLORYELLOW );
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
CHAR_talkToCli ( myindex , -1 , "聊天室已满无法建立新的聊天频道!" , CHAR_COLORYELLOW );
|
||||
CHAR_talkToCli ( myindex , -1 , "聊天室已满无法建立新的聊天频道!" , CHAR_COLORYELLOW );
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@ -183,7 +183,7 @@ void ChatRoom_Kick ( int myindex , int toindex )
|
||||
else {
|
||||
CHAR_setWorkInt ( toindex , CHAR_WORKCHATROOMTYPE , 0 ) ;
|
||||
CHAR_setWorkInt ( toindex , CHAR_WORKCHATROOMNUM , -1) ;
|
||||
//CHAR_talkToCli ( toindex , -1 , "室长将你踢出聊天室!" , CHAR_COLORRED ) ;
|
||||
//CHAR_talkToCli ( toindex , -1 , "室长将你踢出聊天室!" , CHAR_COLORRED ) ;
|
||||
fd = getfdFromCharaIndex( toindex );
|
||||
lssproto_CHATROOM_send ( fd , "K|" ) ;
|
||||
ChatRoom[ Num ].NowPeople --;
|
||||
@ -212,12 +212,12 @@ void ChatRoom_Make ( int myindex , int toindex )
|
||||
CHAR_getInt ( toindex , CHAR_TRANSMIGRATION ) >= 1 ) {
|
||||
CHAR_setWorkInt ( myindex , CHAR_WORKCHATROOMTYPE , 2 ) ;
|
||||
CHAR_setWorkInt ( toindex , CHAR_WORKCHATROOMTYPE , 1 ) ;
|
||||
CHAR_talkToCli ( toindex , -1 , "你现在是聊天室的室长!" , CHAR_COLORRED ) ;
|
||||
CHAR_talkToCli ( toindex , -1 , "你现在是聊天室的室长!" , CHAR_COLORRED ) ;
|
||||
|
||||
ChatRoom[ Num ].Maker = toindex ;
|
||||
}
|
||||
else {
|
||||
CHAR_talkToCli ( myindex , -1 , "您选择的继任人物等级不足以担任室长!" , CHAR_COLORRED ) ;
|
||||
CHAR_talkToCli ( myindex , -1 , "您选择的继任人物等级不足以担任室长!" , CHAR_COLORRED ) ;
|
||||
}
|
||||
}
|
||||
ChatRoom_Refresh ( Num ) ;
|
||||
@ -285,7 +285,7 @@ void ChatRoom_Join ( int myindex , int num )
|
||||
fd = getfdFromCharaIndex( ChatRoom[ num ].Maker );
|
||||
lssproto_CHATROOM_send ( fd , buf );
|
||||
}else if ( ChatRoom[ num ].NowPeople >= MAX_PPLINROOM )
|
||||
CHAR_talkToCli ( myindex , -1 , "聊天室人数已满!" , CHAR_COLORRED ) ;
|
||||
CHAR_talkToCli ( myindex , -1 , "聊天室人数已满!" , CHAR_COLORRED ) ;
|
||||
|
||||
}
|
||||
|
||||
@ -310,10 +310,10 @@ void ChatRoom_Agree ( int myindex , int toindex , int YesNo ) {
|
||||
}
|
||||
}
|
||||
}else if ( YesNo == 0 ) {
|
||||
CHAR_talkToCli ( toindex , -1 , "您申请的聊天室室长拒绝您的加入!" , CHAR_COLORRED ) ;
|
||||
CHAR_talkToCli ( toindex , -1 , "您申请的聊天室室长拒绝您的加入!" , CHAR_COLORRED ) ;
|
||||
}else if ( ChatRoom[ Num ].NowPeople >= MAX_PPLINROOM ) {
|
||||
CHAR_talkToCli ( toindex , -1 , "您申请的聊天室人数已满!" , CHAR_COLORRED ) ;
|
||||
CHAR_talkToCli ( myindex , -1 , "聊天室人数已满!" , CHAR_COLORRED ) ;
|
||||
CHAR_talkToCli ( toindex , -1 , "您申请的聊天室人数已满!" , CHAR_COLORRED ) ;
|
||||
CHAR_talkToCli ( myindex , -1 , "聊天室人数已满!" , CHAR_COLORRED ) ;
|
||||
}
|
||||
}
|
||||
ChatRoom_Refresh ( Num ) ;
|
||||
@ -326,7 +326,7 @@ void ChatRoom_List ( int fd )
|
||||
char token[2048] = "B|";
|
||||
for ( i = 0 ; i < MAX_CHATROOM ; i ++ ) {
|
||||
if ( ChatRoom[ i ].useFlag == TRUE ) {
|
||||
sprintf ( buf , "聊天室%2d资讯:室名=>%20s , 室长=>%16s , 人数=>%2d" ,
|
||||
sprintf ( buf , "聊天室%2d资讯:室名=>%20s , 室长=>%16s , 人数=>%2d" ,
|
||||
i ,
|
||||
ChatRoom[ i ].RoomName ,
|
||||
CHAR_getChar ( ChatRoom[ i ].Maker , CHAR_NAME ) ,
|
||||
@ -391,31 +391,31 @@ void ChatRoom_recvall ( int fd , char *data )
|
||||
getStringFromIndexWithDelim( data , "|", 1, Head, sizeof(Head));
|
||||
getStringFromIndexWithDelim( data , "|", 2, message, sizeof(message));
|
||||
|
||||
if ( strcmp ( Head , "C" ) == 0 ) { // 成立频道
|
||||
if ( strcmp ( Head , "C" ) == 0 ) { // 成立频道
|
||||
if ( !ChatRoom_Create ( myindex , message ) )
|
||||
print("\nSyu log Create Channel Error" );
|
||||
}else if ( strcmp ( Head , "D" ) == 0 ) { // 删除频道
|
||||
}else if ( strcmp ( Head , "D" ) == 0 ) { // 删除频道
|
||||
if ( !ChatRoom_Destroy ( myindex ) )
|
||||
print("\nSyu log Destroy Channel Error" ) ;
|
||||
}else if ( strcmp ( Head , "A" ) == 0 ) {// 同意加入频道
|
||||
}else if ( strcmp ( Head , "A" ) == 0 ) {// 同意加入频道
|
||||
getStringFromIndexWithDelim( data , "|", 2, message, sizeof(message));
|
||||
getStringFromIndexWithDelim( data , "|", 3, buf, sizeof(buf));
|
||||
ChatRoom_Agree ( myindex , atoi( message ) , atoi( buf ) ) ;
|
||||
}else if ( strcmp ( Head , "J" ) == 0 ) {// 申请频道
|
||||
}else if ( strcmp ( Head , "J" ) == 0 ) {// 申请频道
|
||||
getStringFromIndexWithDelim( data , "|", 2, message, sizeof(message));
|
||||
ChatRoom_Join ( myindex , atoi( message ) ) ;
|
||||
}else if ( strcmp ( Head , "L" ) == 0 ) {// 离开频道
|
||||
}else if ( strcmp ( Head , "L" ) == 0 ) {// 离开频道
|
||||
ChatRoom_Leave ( myindex ) ;
|
||||
}else if ( strcmp ( Head , "K" ) == 0 ) {//踢出频道
|
||||
}else if ( strcmp ( Head , "K" ) == 0 ) {//踢出频道
|
||||
getStringFromIndexWithDelim( data , "|", 2, message, sizeof(message));
|
||||
ChatRoom_Kick ( myindex , atoi( message ) );
|
||||
}else if ( strcmp ( Head , "M" ) == 0 ) { // 更换室长
|
||||
}else if ( strcmp ( Head , "M" ) == 0 ) { // 更换室长
|
||||
getStringFromIndexWithDelim( data , "|", 2, message, sizeof(message));
|
||||
ChatRoom_Make ( myindex , atoi( message ) );
|
||||
}else if ( strcmp ( Head , "T" ) == 0 ) {// 频道讯息
|
||||
}else if ( strcmp ( Head , "T" ) == 0 ) {// 频道讯息
|
||||
getStringFromIndexWithDelim( data , "|", 2, message, sizeof(message));
|
||||
ChatRoom_Message ( myindex , message ) ;
|
||||
}else if ( strcmp ( Head , "B" ) == 0 ) {// 聊天室清单
|
||||
}else if ( strcmp ( Head , "B" ) == 0 ) {// 聊天室清单
|
||||
ChatRoom_List ( fd );
|
||||
}else
|
||||
print("\nSyu log None");
|
||||
|
@ -1,7 +1,7 @@
|
||||
#if 0
|
||||
static Char slime=
|
||||
{
|
||||
FALSE, /* use どうでもいい*/
|
||||
FALSE, /* use どうでもいい*/
|
||||
|
||||
/* data */
|
||||
{
|
||||
@ -12,7 +12,7 @@ static Char slime=
|
||||
0, /* CHAR_FLOOR */
|
||||
0, /* CHAR_X */
|
||||
0, /* CHAR_Y */
|
||||
0, /* CHAR_DIR 12時を0に時計周りに */
|
||||
0, /* CHAR_DIR 12箕を0に箕纷件りに */
|
||||
0, /* CHAR_LV */
|
||||
0, /* CHAR_GOLD */
|
||||
1, /* CHAR_HP */
|
||||
@ -27,10 +27,10 @@ static Char slime=
|
||||
0, /* CHAR_CHARM */
|
||||
0, /* CHAR_LUCK */
|
||||
|
||||
0, /* 地属性 */
|
||||
0, /* 水属性 */
|
||||
0, /* 火属性 */
|
||||
0, /* 風属性 */
|
||||
0, /* 孟掳拉 */
|
||||
0, /* 垮掳拉 */
|
||||
0, /* 残掳拉 */
|
||||
0, /* 慎掳拉 */
|
||||
|
||||
0, /* CHAR_SLOT */
|
||||
0, /* CHAR_CRITIAL */
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
static Char player=
|
||||
{
|
||||
FALSE, /* use 升丹匹手中中*/
|
||||
FALSE, /* use どうでもいい*/
|
||||
{
|
||||
0, /* CHAR_DATAPLACENUMBER */
|
||||
0, /* CHAR_BASEIMAGENUMBER */
|
||||
@ -11,7 +11,7 @@ static Char player=
|
||||
0, /* CHAR_FLOOR */
|
||||
0, /* CHAR_X */
|
||||
0, /* CHAR_Y */
|
||||
5, /* CHAR_DIR 12凜毛0卞凜煌璃曰卞 */
|
||||
5, /* CHAR_DIR 12箕を0に箕纷件りに */
|
||||
1, /* CHAR_LV */
|
||||
0, /* CHAR_GOLD */
|
||||
1, /* CHAR_HP */
|
||||
@ -26,10 +26,10 @@ static Char player=
|
||||
|
||||
0, /* CHAR_CHARM */
|
||||
0, /* CHAR_LUCK */
|
||||
0, /* 譁簞嶺 */
|
||||
0, /* 踹簞嶺 */
|
||||
0, /* 紹簞嶺 */
|
||||
0, /* 氘簞嶺 */
|
||||
0, /* 孟掳拉 */
|
||||
0, /* 垮掳拉 */
|
||||
0, /* 残掳拉 */
|
||||
0, /* 慎掳拉 */
|
||||
|
||||
0, /* CHAR_SLOT*/
|
||||
0, /* CHAR_CRITIAL */
|
||||
@ -111,19 +111,19 @@ static Char player=
|
||||
//#endif
|
||||
|
||||
0, //CHAR_SILENT, /* char shutup time */
|
||||
0, // CHAR_FMINDEX, // 家族 index
|
||||
0, // CHAR_FMINDEX, // 產壁 index
|
||||
0, // CHAR_FMLEADERFLAG,
|
||||
/* 家族成員種類
|
||||
* FMMEMBER_NONE :沒有加入任何家族
|
||||
* FMMEMBER_APPLY :申請加入家族中
|
||||
* FMMEMBER_LEADER :族長
|
||||
* FMMEMBER_MEMBER :一般成員
|
||||
* FMMEMBER_ELDER :長老
|
||||
* FMMEMBER_INVITE :祭司 // 暫時不用
|
||||
* FMMEMBER_BAILEE :財務長 // 暫時不用
|
||||
* FMMEMBER_VICELEADER :副族長 // 暫時不用
|
||||
/* 產壁Θ贺摸
|
||||
* FMMEMBER_NONE :⊿Τヴ產壁
|
||||
* FMMEMBER_APPLY :ビ叫產壁い
|
||||
* FMMEMBER_LEADER :壁
|
||||
* FMMEMBER_MEMBER :Θ
|
||||
* FMMEMBER_ELDER :ρ
|
||||
* FMMEMBER_INVITE :步 // 既ぃノ
|
||||
* FMMEMBER_BAILEE :癩叭 // 既ぃノ
|
||||
* FMMEMBER_VICELEADER :捌壁 // 既ぃノ
|
||||
*/
|
||||
0, // CHAR_FMSPRITE, // 家族守護精靈
|
||||
0, // CHAR_FMSPRITE, // 產壁臔弘艶
|
||||
|
||||
0, // CHAR_BANKGOLD,
|
||||
0, // CHAR_RIDEPET,
|
||||
@ -133,13 +133,13 @@ static Char player=
|
||||
#endif
|
||||
0, // CHAR_LIMITLEVEL,
|
||||
#ifdef _PET_FUSION
|
||||
0, // CHAR_FUSIONCODE, //物種編碼
|
||||
0, // CHAR_FUSIONINDEX, //孵化寵物編號
|
||||
0, // CHAR_FUSIONRAISE, //餵養次數
|
||||
0, // CHAR_FUSIONBEIT, //寵蛋旗標
|
||||
0, // CHAR_FUSIONTIMELIMIT, //餵養時間
|
||||
0, // CHAR_FUSIONCODE, //贺絪絏
|
||||
0, // CHAR_FUSIONINDEX, //瑰て胐絪腹
|
||||
0, // CHAR_FUSIONRAISE, //笼緄Ω计
|
||||
0, // CHAR_FUSIONBEIT, //胐矹篨夹
|
||||
0, // CHAR_FUSIONTIMELIMIT, //笼緄丁
|
||||
#endif
|
||||
#ifdef _PERSONAL_FAME // Arminius 8.30: 家族個人聲望
|
||||
#ifdef _PERSONAL_FAME // Arminius 8.30: 產壁羘辨
|
||||
0, // CHAR_FAME,
|
||||
#endif
|
||||
|
||||
@ -148,32 +148,32 @@ static Char player=
|
||||
#endif
|
||||
|
||||
#ifdef _ATTACK_MAGIC
|
||||
0, // CHAR_EARTH_EXP, // 玩家的地魔法熟練度
|
||||
0, // CHAR_WATER_EXP, // 玩家的水魔法熟練度
|
||||
0, // CHAR_FIRE_EXP, // 玩家的火魔法熟練度
|
||||
0, // CHAR_WIND_EXP, // 玩家的風魔法熟練度
|
||||
0, // CHAR_EARTH_RESIST, // 玩家的地魔法抗性
|
||||
0, // CHAR_WATER_RESIST, // 玩家的水魔法抗性
|
||||
0, // CHAR_FIRE_RESIST, // 玩家的火魔法抗性
|
||||
0, // CHAR_WIND_RESIST, // 玩家的風魔法抗性
|
||||
0, // CHAR_EARTH_ATTMAGIC_EXP, // 玩家的地魔法熟練度經驗值
|
||||
0, // CHAR_WATER_ATTMAGIC_EXP, // 玩家的水魔法熟練度經驗值
|
||||
0, // CHAR_FIRE_ATTMAGIC_EXP, // 玩家的火魔法熟練度經驗值
|
||||
0, // CHAR_WIND_ATTMAGIC_EXP, // 玩家的風魔法熟練度經驗值
|
||||
0, // CHAR_EARTH_DEFMAGIC_EXP, // 玩家的地魔法抗性經驗值
|
||||
0, // CHAR_WATER_DEFMAGIC_EXP, // 玩家的水魔法抗性經驗值
|
||||
0, // CHAR_FIRE_DEFMAGIC_EXP, // 玩家的火魔法抗性經驗值
|
||||
0, // CHAR_WIND_DEFMAGIC_EXP, // 玩家的風魔法抗性經驗值
|
||||
0, // CHAR_EARTH_EXP, // 產臸猭剪絤
|
||||
0, // CHAR_WATER_EXP, // 產臸猭剪絤
|
||||
0, // CHAR_FIRE_EXP, // 產臸猭剪絤
|
||||
0, // CHAR_WIND_EXP, // 產臸猭剪絤
|
||||
0, // CHAR_EARTH_RESIST, // 產臸猭к┦
|
||||
0, // CHAR_WATER_RESIST, // 產臸猭к┦
|
||||
0, // CHAR_FIRE_RESIST, // 產臸猭к┦
|
||||
0, // CHAR_WIND_RESIST, // 產臸猭к┦
|
||||
0, // CHAR_EARTH_ATTMAGIC_EXP, // 產臸猭剪絤竒喷
|
||||
0, // CHAR_WATER_ATTMAGIC_EXP, // 產臸猭剪絤竒喷
|
||||
0, // CHAR_FIRE_ATTMAGIC_EXP, // 產臸猭剪絤竒喷
|
||||
0, // CHAR_WIND_ATTMAGIC_EXP, // 產臸猭剪絤竒喷
|
||||
0, // CHAR_EARTH_DEFMAGIC_EXP, // 產臸猭к┦竒喷
|
||||
0, // CHAR_WATER_DEFMAGIC_EXP, // 產臸猭к┦竒喷
|
||||
0, // CHAR_FIRE_DEFMAGIC_EXP, // 產臸猭к┦竒喷
|
||||
0, // CHAR_WIND_DEFMAGIC_EXP, // 產臸猭к┦竒喷
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef _GAMBLE_BANK
|
||||
0, // CHAR_PERSONAGOLD, //賭場個人銀行
|
||||
0, // CHAR_PERSONAGOLD, //戒初蝗︽
|
||||
#endif
|
||||
#ifdef _DROPSTAKENEW
|
||||
0, // CHAR_GAMBLENUM, //賭場積分
|
||||
0, // CHAR_GAMBLENUM, //戒初縩だ
|
||||
#endif
|
||||
#ifdef _ADD_ACTION //npc動作
|
||||
#ifdef _ADD_ACTION //npc笆
|
||||
0, // CHAR_ACTIONSTYLE,
|
||||
#endif
|
||||
#ifdef _PET_EVOLUTION
|
||||
@ -187,27 +187,27 @@ static Char player=
|
||||
0, // CHAR_FMTIMELIMIT,
|
||||
#endif
|
||||
|
||||
#ifdef _CHAR_PROFESSION // WON ADD 人物職業
|
||||
0, // PROFESSION_CLASS, // 職業別
|
||||
0, // PROFESSION_LEVEL, // 職業等級
|
||||
// 0, // PROFESSION_EXP, // 職業經驗值
|
||||
0, // PROFESSION_SKILL_POINT, // 技能點數
|
||||
0, // ATTACHPILE, // 增加堆疊
|
||||
0, // PROFESSION_FIRE_P, // 火熟練度
|
||||
0, // PROFESSION_ICE_P, // 冰熟練度
|
||||
0, // PROFESSION_THUNDER_P, // 雷熟練度
|
||||
0, // PROFESSION_FIRE_R, // 火抗性
|
||||
0, // PROFESSION_ICE_R, // 冰抗性
|
||||
0, // PROFESSION_THUNDER_R, // 雷抗性
|
||||
#ifdef _CHAR_PROFESSION // WON ADD 戮穨
|
||||
0, // PROFESSION_CLASS, // 戮穨
|
||||
0, // PROFESSION_LEVEL, // 戮穨单
|
||||
// 0, // PROFESSION_EXP, // 戮穨竒喷
|
||||
0, // PROFESSION_SKILL_POINT, // м翴计
|
||||
0, // ATTACHPILE, // 糤帮舼
|
||||
0, // PROFESSION_FIRE_P, // 剪絤
|
||||
0, // PROFESSION_ICE_P, // 剪絤
|
||||
0, // PROFESSION_THUNDER_P, // 筽剪絤
|
||||
0, // PROFESSION_FIRE_R, // к┦
|
||||
0, // PROFESSION_ICE_R, // к┦
|
||||
0, // PROFESSION_THUNDER_R, // 筽к┦
|
||||
#endif
|
||||
#ifdef _ALLDOMAN // (不可開) Syu ADD 排行榜NPC
|
||||
#ifdef _ALLDOMAN // (ぃ秨) Syu ADD 逼︽篯NPC
|
||||
0, // CHAR_HEROFLOOR,
|
||||
#endif
|
||||
#ifdef _PETSKILL_BECOMEPIG
|
||||
-1, // CHAR_BECOMEPIG,
|
||||
100250, //CHAR_BECOMEPIG_BBI
|
||||
#endif
|
||||
0, // CHAR_LASTLEAVETIME, // Robin add 最後離線時間
|
||||
0, // CHAR_LASTLEAVETIME, // Robin add 程瞒絬丁
|
||||
|
||||
#ifdef _NEW_MANOR_LAW
|
||||
0, // CHAR_MOMENTUM,
|
||||
@ -224,21 +224,21 @@ static Char player=
|
||||
#endif
|
||||
|
||||
#ifdef _ANGEL_SUMMON
|
||||
0, // CHAR_HEROCNT, // 完成勇者任務的次數
|
||||
0, // CHAR_HEROCNT, // ЧΘ玦ヴ叭Ω计
|
||||
#endif
|
||||
|
||||
#ifdef _TEACHER_SYSTEM
|
||||
0, // CHAR_TEACHER_FAME, // 絳呇鍰絳汒咡
|
||||
0, // CHAR_TEACHER_FAME, // 导师领导声望
|
||||
#endif
|
||||
|
||||
#ifdef _GM_ITEM
|
||||
0, // 俙模GM韜鍔棒杅
|
||||
0, // 玩家GM命令次数
|
||||
#endif
|
||||
#ifdef _VIP_SERVER
|
||||
0, // 頗埜萸杅
|
||||
0, // 会员点数
|
||||
#endif
|
||||
#ifdef _VIP_RIDE
|
||||
0, // 頗埜ぉ窪憐
|
||||
0, // 会员骑黑鸡
|
||||
#endif
|
||||
#ifdef _CAMEO_MONEY
|
||||
0,
|
||||
@ -273,10 +273,10 @@ static Char player=
|
||||
0, //CHAR_LUASAVE_INT_2
|
||||
0, //CHAR_LUASAVE_INT_3
|
||||
#ifdef _CAX_ESC_REPORT
|
||||
0, //CHAR_REPORT 藩゜キ善
|
||||
0, //CHAR_REPORT 每日签到
|
||||
#endif
|
||||
#ifdef _CAX_Mercenary
|
||||
0, //CHAR_MERCENARY 荈條趼僇
|
||||
0, //CHAR_MERCENARY 佣兵字段
|
||||
#endif
|
||||
},
|
||||
|
||||
|
278
char/encount.c
278
char/encount.c
@ -15,23 +15,23 @@
|
||||
#include "encount.h"
|
||||
#include "enemy.h"
|
||||
|
||||
#ifdef _ADD_ENCOUNT // WON ADD 增加敌遭遇触发修件
|
||||
#ifdef _ADD_ENCOUNT // WON ADD 增加敌遭遇触发修件
|
||||
#include "encount.h"
|
||||
#endif
|
||||
|
||||
/* 巨件市它件玄楮 及末□旦 */
|
||||
/* 巨件市它件玄楮 及末□旦 */
|
||||
|
||||
#ifndef _ADD_ENCOUNT // WON ADD 增加敌遭遇触发修件
|
||||
#ifndef _ADD_ENCOUNT // WON ADD 增加敌遭遇触发修件
|
||||
typedef struct tagENCOUNT_Table
|
||||
{
|
||||
int index;
|
||||
int floor;
|
||||
int encountprob_min; /* 巨件市它件玄割 */
|
||||
int encountprob_max; /* 巨件市它件玄割 */
|
||||
int enemymaxnum; /* 升木分仃衬毛综月井 */
|
||||
int encountprob_min; /* 巨件市它件玄割 */
|
||||
int encountprob_max; /* 巨件市它件玄割 */
|
||||
int enemymaxnum; /* 升木分仃衬毛综月井 */
|
||||
int zorder;
|
||||
int groupid[ENCOUNT_GROUPMAXNUM]; /* 弘伙□皿No */
|
||||
int createprob[ENCOUNT_GROUPMAXNUM]; /* 公及弘伙□皿及请蜇 */
|
||||
int groupid[ENCOUNT_GROUPMAXNUM]; /* 弘伙□皿No */
|
||||
int createprob[ENCOUNT_GROUPMAXNUM]; /* 公及弘伙□皿及请蜇 */
|
||||
RECT rect;
|
||||
}ENCOUNT_Table;
|
||||
ENCOUNT_Table *ENCOUNT_table;
|
||||
@ -47,12 +47,12 @@ static INLINE BOOL ENCOUNT_CHECKENCOUNTTABLEARRAY( int array)
|
||||
}
|
||||
|
||||
/*------------------------------------------------------------
|
||||
* 巨件市它件玄涩烂及赓渝祭毛允月[
|
||||
* 娄醒
|
||||
* filename char* 涩烂白央奶伙
|
||||
* 忒曰袄
|
||||
* 岳 TRUE(1)
|
||||
* 撩 FALSE(0)
|
||||
* 巨件市它件玄涩烂及赓渝祭毛允月[
|
||||
* 娄醒
|
||||
* filename char* 涩烂白央奶伙
|
||||
* 忒曰袄
|
||||
* 岳 TRUE(1)
|
||||
* 撩 FALSE(0)
|
||||
*------------------------------------------------------------*/
|
||||
BOOL ENCOUNT_initEncount( char* filename )
|
||||
{
|
||||
@ -69,7 +69,7 @@ BOOL ENCOUNT_initEncount( char* filename )
|
||||
|
||||
ENCOUNT_encountnum=0;
|
||||
|
||||
/* 引内 躲卅垫互窒垫丐月井升丹井譬屯月 */
|
||||
/* 引内 躲卅垫互窒垫丐月井升丹井譬屯月 */
|
||||
while( fgets( line, sizeof( line ), f ) ){
|
||||
linenum ++;
|
||||
if( line[0] == '#' )continue; /* comment */
|
||||
@ -80,7 +80,7 @@ BOOL ENCOUNT_initEncount( char* filename )
|
||||
}
|
||||
|
||||
if( fseek( f, 0, SEEK_SET ) == -1 ){
|
||||
fprint( "寻找错误\n" );
|
||||
fprint( "寻找错误\n" );
|
||||
fclose(f);
|
||||
return FALSE;
|
||||
}
|
||||
@ -88,13 +88,13 @@ BOOL ENCOUNT_initEncount( char* filename )
|
||||
ENCOUNT_table = allocateMemory( sizeof(struct tagENCOUNT_Table)
|
||||
* ENCOUNT_encountnum );
|
||||
if( ENCOUNT_table == NULL ){
|
||||
fprint( "无法分配内存 %d\n" ,
|
||||
fprint( "无法分配内存 %d\n" ,
|
||||
sizeof(ENCOUNT_table)*ENCOUNT_encountnum);
|
||||
fclose( f );
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* 赓渝祭 */
|
||||
/* 赓渝祭 */
|
||||
{
|
||||
int i,j;
|
||||
for( i = 0; i < ENCOUNT_encountnum; i ++ ) {
|
||||
@ -112,7 +112,7 @@ BOOL ENCOUNT_initEncount( char* filename )
|
||||
ENCOUNT_table[i].groupid[j] = -1;
|
||||
ENCOUNT_table[i].createprob[j] = -1;
|
||||
}
|
||||
#ifdef _ADD_ENCOUNT // WON ADD 增加敌遭遇触发修件
|
||||
#ifdef _ADD_ENCOUNT // WON ADD 增加敌遭遇触发修件
|
||||
ENCOUNT_table[i].event_now = -1;
|
||||
ENCOUNT_table[i].event_end = -1;
|
||||
ENCOUNT_table[i].enemy_group = -1;
|
||||
@ -120,7 +120,7 @@ BOOL ENCOUNT_initEncount( char* filename )
|
||||
}
|
||||
}
|
||||
|
||||
/* 引凶 心 允 */
|
||||
/* 引凶 心 允 */
|
||||
linenum = 0;
|
||||
while( fgets( line, sizeof( line ), f ) ){
|
||||
linenum ++;
|
||||
@ -128,10 +128,10 @@ BOOL ENCOUNT_initEncount( char* filename )
|
||||
if( line[0] == '\n' )continue; /* none */
|
||||
chomp( line );
|
||||
|
||||
/* 垫毛帮溥允月 */
|
||||
/* 引内 tab 毛 " " 卞 五晶尹月 */
|
||||
/* 垫毛帮溥允月 */
|
||||
/* 引内 tab 毛 " " 卞 五晶尹月 */
|
||||
replaceString( line, '\t' , ' ' );
|
||||
/* 燮 及旦矢□旦毛潸月[*/
|
||||
/* 燮 及旦矢□旦毛潸月[*/
|
||||
{
|
||||
int i;
|
||||
char buf[256];
|
||||
@ -151,7 +151,7 @@ BOOL ENCOUNT_initEncount( char* filename )
|
||||
int x1,x2,y1,y2;
|
||||
int j;
|
||||
|
||||
/* 蘸户及伙□皿卞 匀凶凛及啃及赓渝祭 */
|
||||
/* 蘸户及伙□皿卞 匀凶凛及啃及赓渝祭 */
|
||||
ENCOUNT_table[encount_readlen].index = -1;
|
||||
ENCOUNT_table[encount_readlen].floor = 0;
|
||||
ENCOUNT_table[encount_readlen].encountprob_min = 1;
|
||||
@ -166,64 +166,64 @@ BOOL ENCOUNT_initEncount( char* filename )
|
||||
ENCOUNT_table[encount_readlen].groupid[j] = -1;
|
||||
ENCOUNT_table[encount_readlen].createprob[j] = -1;
|
||||
}
|
||||
#ifdef _ADD_ENCOUNT // WON ADD 增加敌遭遇触发修件
|
||||
#ifdef _ADD_ENCOUNT // WON ADD 增加敌遭遇触发修件
|
||||
ENCOUNT_table[encount_readlen].event_now = -1;
|
||||
ENCOUNT_table[encount_readlen].event_end = -1;
|
||||
ENCOUNT_table[encount_readlen].enemy_group = -1;
|
||||
#endif
|
||||
|
||||
|
||||
/* 夫午勾户及玄□弁件毛苇月 */
|
||||
/* 夫午勾户及玄□弁件毛苇月 */
|
||||
ret = getStringFromIndexWithDelim( line,",",1,token,
|
||||
sizeof(token));
|
||||
if( ret==FALSE ){
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
continue;
|
||||
}
|
||||
ENCOUNT_table[encount_readlen].index = atoi(token);
|
||||
|
||||
/* 2勾户及玄□弁件毛苇月 */
|
||||
/* 2勾户及玄□弁件毛苇月 */
|
||||
ret = getStringFromIndexWithDelim( line,",",2,token,
|
||||
sizeof(token));
|
||||
if( ret==FALSE ){
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
continue;
|
||||
}
|
||||
ENCOUNT_table[encount_readlen].floor = atoi(token);
|
||||
|
||||
/* 3勾户及玄□弁件毛苇月 */
|
||||
/* 3勾户及玄□弁件毛苇月 */
|
||||
ret = getStringFromIndexWithDelim( line,",",3,token,
|
||||
sizeof(token));
|
||||
if( ret==FALSE ){
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
continue;
|
||||
}
|
||||
x1 = atoi(token);
|
||||
|
||||
/* 4勾户及玄□弁件毛苇月 */
|
||||
/* 4勾户及玄□弁件毛苇月 */
|
||||
ret = getStringFromIndexWithDelim( line,",",4,token,
|
||||
sizeof(token));
|
||||
if( ret==FALSE ){
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
continue;
|
||||
}
|
||||
y1= atoi(token);
|
||||
|
||||
/* 5勾户及玄□弁件毛苇月 */
|
||||
/* 5勾户及玄□弁件毛苇月 */
|
||||
ret = getStringFromIndexWithDelim( line,",",5,token,
|
||||
sizeof(token));
|
||||
if( ret==FALSE ){
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
continue;
|
||||
}
|
||||
|
||||
x2 = atoi(token);
|
||||
|
||||
/* 6勾户及玄□弁件毛苇月 */
|
||||
/* 6勾户及玄□弁件毛苇月 */
|
||||
ret = getStringFromIndexWithDelim( line,",",6,token,
|
||||
sizeof(token));
|
||||
if( ret==FALSE ){
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
continue;
|
||||
}
|
||||
y2= atoi(token);
|
||||
@ -233,20 +233,20 @@ BOOL ENCOUNT_initEncount( char* filename )
|
||||
ENCOUNT_table[encount_readlen].rect.y = min(y1,y2);
|
||||
ENCOUNT_table[encount_readlen].rect.height = max(y1,y2) - min(y1,y2);
|
||||
|
||||
/* 7户及玄□弁件毛苇月 */
|
||||
/* 7户及玄□弁件毛苇月 */
|
||||
ret = getStringFromIndexWithDelim( line,",",7,token,
|
||||
sizeof(token));
|
||||
if( ret==FALSE ){
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
continue;
|
||||
}
|
||||
ENCOUNT_table[encount_readlen].encountprob_min = atoi(token);
|
||||
|
||||
/* 8户及玄□弁件毛苇月 */
|
||||
/* 8户及玄□弁件毛苇月 */
|
||||
ret = getStringFromIndexWithDelim( line,",",8,token,
|
||||
sizeof(token));
|
||||
if( ret==FALSE ){
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
continue;
|
||||
}
|
||||
ENCOUNT_table[encount_readlen].encountprob_max = atoi(token);
|
||||
@ -255,39 +255,39 @@ BOOL ENCOUNT_initEncount( char* filename )
|
||||
int a,b;
|
||||
a = ENCOUNT_table[encount_readlen].encountprob_min;
|
||||
b = ENCOUNT_table[encount_readlen].encountprob_max;
|
||||
/* 凝及譬帮 */
|
||||
/* 凝及譬帮 */
|
||||
ENCOUNT_table[encount_readlen].encountprob_min
|
||||
= min( a,b);
|
||||
ENCOUNT_table[encount_readlen].encountprob_max
|
||||
= max( a,b);
|
||||
}
|
||||
/* 9勾户及玄□弁件毛苇月 */
|
||||
/* 9勾户及玄□弁件毛苇月 */
|
||||
ret = getStringFromIndexWithDelim( line,",",9,token,
|
||||
sizeof(token));
|
||||
if( ret==FALSE ){
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
continue;
|
||||
}
|
||||
{
|
||||
int maxnum = atoi( token);
|
||||
/* 醒及恳癫岭及民尼永弁 */
|
||||
/* 醒及恳癫岭及民尼永弁 */
|
||||
if( maxnum < 1 || maxnum > ENCOUNT_ENEMYMAXCREATENUM ) {
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
continue;
|
||||
}
|
||||
ENCOUNT_table[encount_readlen].enemymaxnum = maxnum;
|
||||
}
|
||||
/* 10户及玄□弁件毛苇月 */
|
||||
/* 10户及玄□弁件毛苇月 */
|
||||
ret = getStringFromIndexWithDelim( line,",",10,token,
|
||||
sizeof(token));
|
||||
if( ret==FALSE ){
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
continue;
|
||||
}
|
||||
ENCOUNT_table[encount_readlen].zorder = atoi(token);
|
||||
#define CREATEPROB_TOKEN 11
|
||||
|
||||
/* 11 31户及玄□弁件毛苇月 */
|
||||
/* 11 31户及玄□弁件毛苇月 */
|
||||
{
|
||||
int i;
|
||||
|
||||
@ -295,7 +295,7 @@ BOOL ENCOUNT_initEncount( char* filename )
|
||||
ret = getStringFromIndexWithDelim( line,",",i,token,
|
||||
sizeof(token));
|
||||
if( ret==FALSE ){
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
continue;
|
||||
}
|
||||
if( strlen( token) != 0 ) {
|
||||
@ -310,22 +310,22 @@ BOOL ENCOUNT_initEncount( char* filename )
|
||||
}
|
||||
}
|
||||
|
||||
/* 褐 民尼永弁 */
|
||||
/* 褐 民尼永弁 */
|
||||
if( checkRedundancy( ENCOUNT_table[encount_readlen].groupid,
|
||||
arraysizeof( ENCOUNT_table[encount_readlen].groupid)))
|
||||
{
|
||||
fprint( "文件语法错误:%s 第%d行\n",
|
||||
fprint( "文件语法错误:%s 第%d行\n",
|
||||
filename,linenum);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#ifdef _ADD_ENCOUNT // WON ADD 增加敌遭遇触发修件
|
||||
#ifdef _ADD_ENCOUNT // WON ADD 增加敌遭遇触发修件
|
||||
ret = getStringFromIndexWithDelim( line,",",31,token,
|
||||
sizeof(token));
|
||||
if( ret==FALSE ){
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
continue;
|
||||
}
|
||||
ENCOUNT_table[encount_readlen].event_now = atoi(token);
|
||||
@ -333,7 +333,7 @@ BOOL ENCOUNT_initEncount( char* filename )
|
||||
ret = getStringFromIndexWithDelim( line,",",32,token,
|
||||
sizeof(token));
|
||||
if( ret==FALSE ){
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
continue;
|
||||
}
|
||||
ENCOUNT_table[encount_readlen].event_end = atoi(token);
|
||||
@ -341,7 +341,7 @@ BOOL ENCOUNT_initEncount( char* filename )
|
||||
ret = getStringFromIndexWithDelim( line,",",33,token,
|
||||
sizeof(token));
|
||||
if( ret==FALSE ){
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
continue;
|
||||
}
|
||||
ENCOUNT_table[encount_readlen].enemy_group = atoi(token);
|
||||
@ -354,12 +354,12 @@ BOOL ENCOUNT_initEncount( char* filename )
|
||||
|
||||
ENCOUNT_encountnum = encount_readlen;
|
||||
|
||||
print( "有效的遇敌坐标数是 %d..", ENCOUNT_encountnum );
|
||||
print( "有效的遇敌坐标数是 %d..", ENCOUNT_encountnum );
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
/*------------------------------------------------------------------------
|
||||
* 巨件市它件玄涩烂白央奶伙 心 仄
|
||||
* 巨件市它件玄涩烂白央奶伙 心 仄
|
||||
*-----------------------------------------------------------------------*/
|
||||
BOOL ENCOUNT_reinitEncount( void )
|
||||
{
|
||||
@ -368,15 +368,15 @@ BOOL ENCOUNT_reinitEncount( void )
|
||||
}
|
||||
|
||||
/*------------------------------------------------------------
|
||||
* 隙烂今木凶甄 及ENCOUNT_table及骄侬毛譬屯月[
|
||||
* zorder及醒侬毛苇化穸燮赐匏及嫖中 毛潸 允月[
|
||||
* 娄醒
|
||||
* floor int 白夫失ID
|
||||
* x int x甄
|
||||
* y int y甄
|
||||
* 忒曰袄
|
||||
* 恳橘 骄侬
|
||||
* 潸 撩 -1
|
||||
* 隙烂今木凶甄 及ENCOUNT_table及骄侬毛譬屯月[
|
||||
* zorder及醒侬毛苇化穸燮赐匏及嫖中 毛潸 允月[
|
||||
* 娄醒
|
||||
* floor int 白夫失ID
|
||||
* x int x甄
|
||||
* y int y甄
|
||||
* 忒曰袄
|
||||
* 恳橘 骄侬
|
||||
* 潸 撩 -1
|
||||
------------------------------------------------------------*/
|
||||
int ENCOUNT_getEncountAreaArray( int floor, int x, int y)
|
||||
{
|
||||
@ -388,8 +388,8 @@ int ENCOUNT_getEncountAreaArray( int floor, int x, int y)
|
||||
int curZorder = ENCOUNT_getZorderFromArray(i);
|
||||
if( curZorder >0) {
|
||||
if( index != -1 ) {
|
||||
/* 穸燮赐匏毛譬屯月 */
|
||||
/* 五中 穸燮 */
|
||||
/* 穸燮赐匏毛譬屯月 */
|
||||
/* 五中 穸燮 */
|
||||
if( curZorder > ENCOUNT_getZorderFromArray(index)) {
|
||||
index = i;
|
||||
}
|
||||
@ -405,14 +405,14 @@ int ENCOUNT_getEncountAreaArray( int floor, int x, int y)
|
||||
}
|
||||
|
||||
/*------------------------------------------------------------
|
||||
* 隙烂今木凶甄 及巨件市它件玄割 毛譬屯月[
|
||||
* 娄醒
|
||||
* floor int 白夫失ID
|
||||
* x int x甄
|
||||
* y int y甄
|
||||
* 忒曰袄
|
||||
* 恳橘 ㄟ动晓及割
|
||||
* 潸 撩 -1
|
||||
* 隙烂今木凶甄 及巨件市它件玄割 毛譬屯月[
|
||||
* 娄醒
|
||||
* floor int 白夫失ID
|
||||
* x int x甄
|
||||
* y int y甄
|
||||
* 忒曰袄
|
||||
* 恳橘 ㄟ动晓及割
|
||||
* 潸 撩 -1
|
||||
------------------------------------------------------------*/
|
||||
int ENCOUNT_getEncountPercentMin( int charaindex, int floor , int x, int y )
|
||||
{
|
||||
@ -421,7 +421,7 @@ int ENCOUNT_getEncountPercentMin( int charaindex, int floor , int x, int y )
|
||||
ret = ENCOUNT_getEncountAreaArray( floor, x, y);
|
||||
if( ret != -1 ) {
|
||||
ret = ENCOUNT_table[ret].encountprob_min;
|
||||
/* 玄目夫旦躲绊毛勾仃月 */
|
||||
/* 玄目夫旦躲绊毛勾仃月 */
|
||||
if( CHAR_getWorkInt( charaindex, CHAR_WORK_TOHELOS_COUNT) > 0 ) {
|
||||
ret = ceil( ret *
|
||||
((100 + CHAR_getWorkInt( charaindex, CHAR_WORK_TOHELOS_CUTRATE))
|
||||
@ -433,14 +433,14 @@ int ENCOUNT_getEncountPercentMin( int charaindex, int floor , int x, int y )
|
||||
return ret;
|
||||
}
|
||||
/*------------------------------------------------------------
|
||||
* 隙烂今木凶甄 及巨件市它件玄割 毛譬屯月[
|
||||
* 娄醒
|
||||
* floor int 白夫失ID
|
||||
* x int x甄
|
||||
* y int y甄
|
||||
* 忒曰袄
|
||||
* 恳橘 ㄟ动晓及割
|
||||
* 潸 撩 -1
|
||||
* 隙烂今木凶甄 及巨件市它件玄割 毛譬屯月[
|
||||
* 娄醒
|
||||
* floor int 白夫失ID
|
||||
* x int x甄
|
||||
* y int y甄
|
||||
* 忒曰袄
|
||||
* 恳橘 ㄟ动晓及割
|
||||
* 潸 撩 -1
|
||||
------------------------------------------------------------*/
|
||||
int ENCOUNT_getEncountPercentMax( int charaindex, int floor , int x, int y )
|
||||
{
|
||||
@ -449,7 +449,7 @@ int ENCOUNT_getEncountPercentMax( int charaindex, int floor , int x, int y )
|
||||
ret = ENCOUNT_getEncountAreaArray( floor, x, y);
|
||||
if( ret != -1 ) {
|
||||
ret = ENCOUNT_table[ret].encountprob_max;
|
||||
/* 玄目夫旦躲绊毛勾仃月 */
|
||||
/* 玄目夫旦躲绊毛勾仃月 */
|
||||
if( CHAR_getWorkInt( charaindex, CHAR_WORK_TOHELOS_COUNT) > 0 ) {
|
||||
ret = ceil( ret *
|
||||
((100 + CHAR_getWorkInt( charaindex, CHAR_WORK_TOHELOS_CUTRATE))
|
||||
@ -461,14 +461,14 @@ int ENCOUNT_getEncountPercentMax( int charaindex, int floor , int x, int y )
|
||||
return ret;
|
||||
}
|
||||
/*------------------------------------------------------------
|
||||
* 隙烂今木凶甄 及衬戏岳MAX醒毛譬屯月[
|
||||
* 娄醒
|
||||
* floor int 白夫失ID
|
||||
* x int x甄
|
||||
* y int y甄
|
||||
* 忒曰袄
|
||||
* 恳橘 ㄟ动晓及割
|
||||
* 潸 撩 -1
|
||||
* 隙烂今木凶甄 及衬戏岳MAX醒毛譬屯月[
|
||||
* 娄醒
|
||||
* floor int 白夫失ID
|
||||
* x int x甄
|
||||
* y int y甄
|
||||
* 忒曰袄
|
||||
* 恳橘 ㄟ动晓及割
|
||||
* 潸 撩 -1
|
||||
------------------------------------------------------------*/
|
||||
int ENCOUNT_getCreateEnemyMaxNum( int floor , int x, int y )
|
||||
{
|
||||
@ -481,14 +481,14 @@ int ENCOUNT_getCreateEnemyMaxNum( int floor , int x, int y )
|
||||
return ret;
|
||||
}
|
||||
/*------------------------------------------------------------
|
||||
* 隙烂今木凶甄 及巨件市它件玄白奴□伙玉及index毛譬屯月[
|
||||
* 娄醒
|
||||
* floor int 白夫失ID
|
||||
* x int x甄
|
||||
* y int y甄
|
||||
* 忒曰袄
|
||||
* 恳橘 ㄟ动晓
|
||||
* 潸 撩 -1
|
||||
* 隙烂今木凶甄 及巨件市它件玄白奴□伙玉及index毛譬屯月[
|
||||
* 娄醒
|
||||
* floor int 白夫失ID
|
||||
* x int x甄
|
||||
* y int y甄
|
||||
* 忒曰袄
|
||||
* 恳橘 ㄟ动晓
|
||||
* 潸 撩 -1
|
||||
------------------------------------------------------------*/
|
||||
int ENCOUNT_getEncountIndex( int floor , int x, int y )
|
||||
{
|
||||
@ -501,12 +501,12 @@ int ENCOUNT_getEncountIndex( int floor , int x, int y )
|
||||
return ret;
|
||||
}
|
||||
/*------------------------------------------------------------
|
||||
* 隙烂今木凶甄 及巨件市它件玄白奴□伙玉及index毛譬屯月[
|
||||
* 娄醒
|
||||
* array int ENCOUNTTABLE及骄侬
|
||||
* 忒曰袄
|
||||
* 恳橘 ㄟ动晓
|
||||
* 潸 撩 -1
|
||||
* 隙烂今木凶甄 及巨件市它件玄白奴□伙玉及index毛譬屯月[
|
||||
* 娄醒
|
||||
* array int ENCOUNTTABLE及骄侬
|
||||
* 忒曰袄
|
||||
* 恳橘 ㄟ动晓
|
||||
* 潸 撩 -1
|
||||
------------------------------------------------------------*/
|
||||
int ENCOUNT_getEncountIndexFromArray( int array )
|
||||
{
|
||||
@ -514,12 +514,12 @@ int ENCOUNT_getEncountIndexFromArray( int array )
|
||||
return ENCOUNT_table[array].index;
|
||||
}
|
||||
/*------------------------------------------------------------
|
||||
* 隙烂今木凶甄 及巨件市它件玄割 毛譬屯月[
|
||||
* 娄醒
|
||||
* array int ENCOUNTTABLE及骄侬
|
||||
* 忒曰袄
|
||||
* 恳橘 ㄟ动晓
|
||||
* 潸 撩 -1
|
||||
* 隙烂今木凶甄 及巨件市它件玄割 毛譬屯月[
|
||||
* 娄醒
|
||||
* array int ENCOUNTTABLE及骄侬
|
||||
* 忒曰袄
|
||||
* 恳橘 ㄟ动晓
|
||||
* 潸 撩 -1
|
||||
------------------------------------------------------------*/
|
||||
int ENCOUNT_getEncountPercentFromArray( int array )
|
||||
{
|
||||
@ -527,12 +527,12 @@ int ENCOUNT_getEncountPercentFromArray( int array )
|
||||
return ENCOUNT_table[array].encountprob_min;
|
||||
}
|
||||
/*------------------------------------------------------------
|
||||
* 隙烂今木凶甄 及衬戏岳MAX醒毛譬屯月[
|
||||
* 娄醒
|
||||
* array int ENCOUNTTABLE及骄侬
|
||||
* 忒曰袄
|
||||
* 恳橘 ㄟ动晓
|
||||
* 潸 撩 -1
|
||||
* 隙烂今木凶甄 及衬戏岳MAX醒毛譬屯月[
|
||||
* 娄醒
|
||||
* array int ENCOUNTTABLE及骄侬
|
||||
* 忒曰袄
|
||||
* 恳橘 ㄟ动晓
|
||||
* 潸 撩 -1
|
||||
------------------------------------------------------------*/
|
||||
int ENCOUNT_getCreateEnemyMaxNumFromArray( int array )
|
||||
{
|
||||
@ -540,12 +540,12 @@ int ENCOUNT_getCreateEnemyMaxNumFromArray( int array )
|
||||
return ENCOUNT_table[array].enemymaxnum;
|
||||
}
|
||||
/*------------------------------------------------------------
|
||||
* 隙烂今木凶骄侬及弘伙□皿 寞毛譬屯月[
|
||||
* 娄醒
|
||||
* array int ENCOUNTTABLE及骄侬
|
||||
* 忒曰袄
|
||||
* 恳橘 ㄟ动晓
|
||||
* 潸 撩 -1
|
||||
* 隙烂今木凶骄侬及弘伙□皿 寞毛譬屯月[
|
||||
* 娄醒
|
||||
* array int ENCOUNTTABLE及骄侬
|
||||
* 忒曰袄
|
||||
* 恳橘 ㄟ动晓
|
||||
* 潸 撩 -1
|
||||
------------------------------------------------------------*/
|
||||
int ENCOUNT_getGroupIdFromArray( int array, int grouparray )
|
||||
{
|
||||
@ -553,12 +553,12 @@ int ENCOUNT_getGroupIdFromArray( int array, int grouparray )
|
||||
return ENCOUNT_table[array].groupid[grouparray];
|
||||
}
|
||||
/*------------------------------------------------------------
|
||||
* 隙烂今木凶骄侬及弘伙□皿及请蜇 毛譬屯月[
|
||||
* 娄醒
|
||||
* array int ENCOUNTTABLE及骄侬
|
||||
* 忒曰袄
|
||||
* 恳橘 ㄟ动晓
|
||||
* 潸 撩 -1
|
||||
* 隙烂今木凶骄侬及弘伙□皿及请蜇 毛譬屯月[
|
||||
* 娄醒
|
||||
* array int ENCOUNTTABLE及骄侬
|
||||
* 忒曰袄
|
||||
* 恳橘 ㄟ动晓
|
||||
* 潸 撩 -1
|
||||
------------------------------------------------------------*/
|
||||
int ENCOUNT_getGroupProbFromArray( int array, int grouparray )
|
||||
{
|
||||
@ -566,12 +566,12 @@ int ENCOUNT_getGroupProbFromArray( int array, int grouparray )
|
||||
return ENCOUNT_table[array].createprob[grouparray];
|
||||
}
|
||||
/*------------------------------------------------------------
|
||||
* 隙烂今木凶骄侬及穸燮赐匏毛譬屯月[
|
||||
* 娄醒
|
||||
* array int ENCOUNTTABLE及骄侬
|
||||
* 忒曰袄
|
||||
* 恳橘 ㄟ动晓
|
||||
* 潸 撩 -1
|
||||
* 隙烂今木凶骄侬及穸燮赐匏毛譬屯月[
|
||||
* 娄醒
|
||||
* array int ENCOUNTTABLE及骄侬
|
||||
* 忒曰袄
|
||||
* 恳橘 ㄟ动晓
|
||||
* 潸 撩 -1
|
||||
------------------------------------------------------------*/
|
||||
int ENCOUNT_getZorderFromArray( int array )
|
||||
{
|
||||
|
320
char/enemy.c
320
char/enemy.c
@ -1,4 +1,4 @@
|
||||
/* 衬涩烂楮 */
|
||||
/* 衬涩烂楮 */
|
||||
#include "version.h"
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
@ -18,7 +18,7 @@
|
||||
#include "anim_tbl.h"
|
||||
#include "log.h"
|
||||
|
||||
#ifdef _ADD_ENCOUNT // WON ADD 增加敌遭遇触发修件
|
||||
#ifdef _ADD_ENCOUNT // WON ADD 增加敌遭遇触发修件
|
||||
#include "encount.h"
|
||||
#include "npcutil.h"
|
||||
#endif
|
||||
@ -215,13 +215,13 @@ BOOL ENEMYTEMP_initEnemy( char* filename )
|
||||
int i,j;
|
||||
f = fopen(filename,"r");
|
||||
if( f == NULL ){
|
||||
print( "文件打开失败\n");
|
||||
print( "文件打开失败\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
ENEMYTEMP_enemynum=0;
|
||||
|
||||
/* 引内 躲卅垫互窒垫丐月井升丹井譬屯月 */
|
||||
/* 引内 躲卅垫互窒垫丐月井升丹井譬屯月 */
|
||||
while( fgets( line, sizeof( line ), f ) ){
|
||||
linenum ++;
|
||||
if( line[0] == '#' )continue; /* comment */
|
||||
@ -239,13 +239,13 @@ BOOL ENEMYTEMP_initEnemy( char* filename )
|
||||
ENEMYTEMP_enemy = allocateMemory( sizeof(struct tagENEMYTEMP_Table)
|
||||
* ENEMYTEMP_enemynum );
|
||||
if( ENEMYTEMP_enemy == NULL ){
|
||||
fprint( "无法分配内存 %d\n" ,
|
||||
fprint( "无法分配内存 %d\n" ,
|
||||
sizeof(struct tagENEMYTEMP_Table)*ENEMYTEMP_enemynum);
|
||||
fclose( f );
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* 赓渝祭 */
|
||||
/* 赓渝祭 */
|
||||
for( i = 0; i < ENEMYTEMP_enemynum; i ++ ) {
|
||||
for( j = 0; j < E_T_DATAINTNUM; j ++ ) {
|
||||
ENEMYTEMP_setInt( i,j,-1);
|
||||
@ -277,7 +277,7 @@ BOOL ENEMYTEMP_initEnemy( char* filename )
|
||||
ret = getStringFromIndexWithDelim( line,",",i+1,token,
|
||||
sizeof(token));
|
||||
if( ret==FALSE ){
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
continue;
|
||||
}
|
||||
ENEMYTEMP_setChar( enemytemp_readlen, E_T_NAME + i, token);
|
||||
@ -288,7 +288,7 @@ BOOL ENEMYTEMP_initEnemy( char* filename )
|
||||
ret = getStringFromIndexWithDelim( line,",",i,token,
|
||||
sizeof(token));
|
||||
if( ret==FALSE ){
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
break;
|
||||
}
|
||||
if( strlen( token) != 0 ) {
|
||||
@ -305,7 +305,7 @@ BOOL ENEMYTEMP_initEnemy( char* filename )
|
||||
|
||||
ENEMYTEMP_enemynum = enemytemp_readlen;
|
||||
|
||||
print( "有效宠物基本状态数是 %d...", ENEMYTEMP_enemynum );
|
||||
print( "有效宠物基本状态数是 %d...", ENEMYTEMP_enemynum );
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@ -353,7 +353,7 @@ BOOL ENEMY_initEnemy( char* filename )
|
||||
int i,j;
|
||||
f = fopen(filename,"r");
|
||||
if( f == NULL ){
|
||||
print( "文件打开失败\n");
|
||||
print( "文件打开失败\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@ -368,7 +368,7 @@ BOOL ENEMY_initEnemy( char* filename )
|
||||
}
|
||||
|
||||
if( fseek( f, 0, SEEK_SET ) == -1 ){
|
||||
fprint( "寻找失败\n" );
|
||||
fprint( "寻找失败\n" );
|
||||
fclose(f);
|
||||
return FALSE;
|
||||
}
|
||||
@ -376,7 +376,7 @@ BOOL ENEMY_initEnemy( char* filename )
|
||||
ENEMY_enemy = allocateMemory( sizeof(struct tagENEMY_EnemyTable)
|
||||
* ENEMY_enemynum );
|
||||
if( ENEMY_enemy == NULL ){
|
||||
fprint( "无法分配内存 %d\n" ,
|
||||
fprint( "无法分配内存 %d\n" ,
|
||||
sizeof(struct tagENEMY_EnemyTable)*ENEMY_enemynum);
|
||||
fclose( f );
|
||||
return FALSE;
|
||||
@ -411,20 +411,20 @@ BOOL ENEMY_initEnemy( char* filename )
|
||||
|
||||
ret = getStringFromIndexWithDelim( line,",",1,token,sizeof(token));
|
||||
if( ret==FALSE ){
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
continue;
|
||||
}
|
||||
ENEMY_setChar( enemy_readlen, ENEMY_NAME, token);
|
||||
ret = getStringFromIndexWithDelim( line,",",2,token,sizeof(token));
|
||||
if( ret==FALSE ){
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
continue;
|
||||
}
|
||||
ENEMY_setChar( enemy_readlen, ENEMY_TACTICSOPTION, token);
|
||||
#ifdef _BATTLENPC_WARP_PLAYER
|
||||
ret = getStringFromIndexWithDelim( line, ",", 3, token, sizeof(token));
|
||||
if(ret==FALSE){
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
continue;
|
||||
}
|
||||
ENEMY_setChar( enemy_readlen, ENEMY_ACT_CONDITION, token);
|
||||
@ -439,7 +439,7 @@ BOOL ENEMY_initEnemy( char* filename )
|
||||
for( i = ENEMY_STARTINTNUM; i < ENEMY_DATAINTNUM+ENEMY_STARTINTNUM; i ++ ) {
|
||||
ret = getStringFromIndexWithDelim( line,",",i,token,sizeof(token));
|
||||
if( ret==FALSE ){
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
break;
|
||||
}
|
||||
ENEMY_setInt( enemy_readlen, i - ENEMY_STARTINTNUM, atoi( token));
|
||||
@ -451,7 +451,7 @@ BOOL ENEMY_initEnemy( char* filename )
|
||||
}
|
||||
}
|
||||
if( i == ENEMYTEMP_enemynum) {
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
continue;
|
||||
}
|
||||
ENEMY_enemy[enemy_readlen].enemytemparray = i;
|
||||
@ -470,12 +470,12 @@ BOOL ENEMY_initEnemy( char* filename )
|
||||
}
|
||||
fclose(f);
|
||||
ENEMY_enemynum = enemy_readlen;
|
||||
print( "有效宠物数是 %d..", ENEMY_enemynum );
|
||||
print( "有效宠物数是 %d..", ENEMY_enemynum );
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
/*------------------------------------------------------------------------
|
||||
* ENEMY_enemy及涩烂白央奶伙 心 仄
|
||||
* ENEMY_enemy及涩烂白央奶伙 心 仄
|
||||
*-----------------------------------------------------------------------*/
|
||||
BOOL ENEMY_reinitEnemy( void )
|
||||
{
|
||||
@ -484,7 +484,7 @@ BOOL ENEMY_reinitEnemy( void )
|
||||
}
|
||||
|
||||
/*------------------------------------------------------------------------
|
||||
ENEMY_Enemy及骄侬毛襞月
|
||||
ENEMY_Enemy及骄侬毛襞月
|
||||
*-----------------------------------------------------------------------*/
|
||||
int ENEMY_getEnemyArrayFromIndex( int groupindex, int index)
|
||||
{
|
||||
@ -493,7 +493,7 @@ int ENEMY_getEnemyArrayFromIndex( int groupindex, int index)
|
||||
return GROUP_group[groupindex].enemyarray[index];
|
||||
}
|
||||
/*------------------------------------------------------------------------
|
||||
* ENEMY_ID 井日ENEMY_Enemy及骄侬毛襞月
|
||||
* ENEMY_ID 井日ENEMY_Enemy及骄侬毛襞月
|
||||
*-----------------------------------------------------------------------*/
|
||||
int ENEMY_getEnemyArrayFromId( int EnemyId)
|
||||
{
|
||||
@ -540,7 +540,7 @@ int ENEMY_getEnemyTempNoFromId( int EnemyId)
|
||||
}
|
||||
|
||||
/*------------------------------------------------------------------------
|
||||
* 弘伙□皿涩烂白央奶伙毛 戈
|
||||
* 弘伙□皿涩烂白央奶伙毛 戈
|
||||
*-----------------------------------------------------------------------*/
|
||||
BOOL GROUP_initGroup( char* filename )
|
||||
{
|
||||
@ -552,13 +552,13 @@ BOOL GROUP_initGroup( char* filename )
|
||||
|
||||
f = fopen(filename,"r");
|
||||
if( f == NULL ){
|
||||
print( "文件打开失败\n");
|
||||
print( "文件打开失败\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
GROUP_groupnum=0;
|
||||
|
||||
/* 引内 躲卅垫互窒垫丐月井升丹井譬屯月 */
|
||||
/* 引内 躲卅垫互窒垫丐月井升丹井譬屯月 */
|
||||
while( fgets( line, sizeof( line ), f ) ){
|
||||
linenum ++;
|
||||
if( line[0] == '#' )continue; /* comment */
|
||||
@ -569,7 +569,7 @@ BOOL GROUP_initGroup( char* filename )
|
||||
}
|
||||
|
||||
if( fseek( f, 0, SEEK_SET ) == -1 ){
|
||||
fprint( "寻找失败\n" );
|
||||
fprint( "寻找失败\n" );
|
||||
fclose(f);
|
||||
return FALSE;
|
||||
}
|
||||
@ -577,12 +577,12 @@ BOOL GROUP_initGroup( char* filename )
|
||||
GROUP_group = allocateMemory( sizeof(struct tagGROUP_Table)
|
||||
* GROUP_groupnum );
|
||||
if( GROUP_group == NULL ){
|
||||
fprint( "无法分配内存 %d\n" ,
|
||||
fprint( "无法分配内存 %d\n" ,
|
||||
sizeof(struct tagGROUP_Table)*GROUP_groupnum);
|
||||
fclose( f );
|
||||
return FALSE;
|
||||
}
|
||||
/* 赓渝祭 */
|
||||
/* 赓渝祭 */
|
||||
for( i = 0; i < GROUP_groupnum; i ++ ) {
|
||||
for( j = 0; j < GROUP_DATAINTNUM; j ++ ) {
|
||||
GROUP_setInt( i,j,-1);
|
||||
@ -592,7 +592,7 @@ BOOL GROUP_initGroup( char* filename )
|
||||
}
|
||||
}
|
||||
|
||||
/* 引凶 心 允 */
|
||||
/* 引凶 心 允 */
|
||||
linenum = 0;
|
||||
while( fgets( line, sizeof( line ), f ) ){
|
||||
linenum ++;
|
||||
@ -600,10 +600,10 @@ BOOL GROUP_initGroup( 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 ++) {
|
||||
@ -621,7 +621,7 @@ BOOL GROUP_initGroup( char* filename )
|
||||
int ret;
|
||||
int loop;
|
||||
|
||||
/* 手仄手ㄡ蘸户及伙□皿卞 匀凶凛及凶户卞赓渝祭仄化云仁 */
|
||||
/* 手仄手ㄡ蘸户及伙□皿卞 匀凶凛及凶户卞赓渝祭仄化云仁 */
|
||||
for( j = 0; j < GROUP_DATAINTNUM; j ++ ) {
|
||||
GROUP_setInt( group_readlen,j,-1);
|
||||
}
|
||||
@ -629,22 +629,22 @@ BOOL GROUP_initGroup( char* filename )
|
||||
GROUP_group[group_readlen].enemyarray[j] = -1;
|
||||
}
|
||||
|
||||
/* 夫午勾户及玄□弁件毛苇月 */
|
||||
/* 夫午勾户及玄□弁件毛苇月 */
|
||||
ret = getStringFromIndexWithDelim( line,",",1,token,
|
||||
sizeof(token));
|
||||
if( ret==FALSE ){
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
continue;
|
||||
}
|
||||
GROUP_setChar( group_readlen, GROUP_NAME, token);
|
||||
|
||||
/* 2勾 动嫦反醒袄犯□正 */
|
||||
/* 2勾 动嫦反醒袄犯□正 */
|
||||
#define GROUP_STARTINTNUM 2
|
||||
for( i = GROUP_STARTINTNUM; i < GROUP_DATAINTNUM+GROUP_STARTINTNUM; i ++ ) {
|
||||
ret = getStringFromIndexWithDelim( line,",",i,token,
|
||||
sizeof(token));
|
||||
if( ret==FALSE ){
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
break;
|
||||
}
|
||||
if( strlen( token) != 0 ) {
|
||||
@ -675,13 +675,13 @@ BOOL GROUP_initGroup( char* filename )
|
||||
}
|
||||
}
|
||||
if( enemycnt == 0 ) {
|
||||
fprint("团队设定中敌人尚未设定 文件:%s 第%d行\n",filename,linenum);
|
||||
fprint("团队设定中敌人尚未设定 文件:%s 第%d行\n",filename,linenum);
|
||||
continue;;
|
||||
}
|
||||
if( checkRedundancy( &GROUP_group[group_readlen].intdata[ENEMY_ID1],
|
||||
CREATEPROB1 - ENEMY_ID1))
|
||||
{
|
||||
fprint("团队设定中敌人重复设定 文件:%s 第%d行\n",filename,linenum);
|
||||
fprint("团队设定中敌人重复设定 文件:%s 第%d行\n",filename,linenum);
|
||||
continue;;
|
||||
}
|
||||
|
||||
@ -695,12 +695,12 @@ BOOL GROUP_initGroup( char* filename )
|
||||
|
||||
GROUP_groupnum = group_readlen;
|
||||
|
||||
print( "有效遇敌组群数是 %d...", GROUP_groupnum );
|
||||
print( "有效遇敌组群数是 %d...", GROUP_groupnum );
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
/*------------------------------------------------------------------------
|
||||
* 弘伙□皿及涩烂白央奶伙 心 仄
|
||||
* 弘伙□皿及涩烂白央奶伙 心 仄
|
||||
*-----------------------------------------------------------------------*/
|
||||
BOOL GROUP_reinitGroup( void )
|
||||
{
|
||||
@ -708,7 +708,7 @@ BOOL GROUP_reinitGroup( void )
|
||||
return( GROUP_initGroup( getGroupfile()));
|
||||
}
|
||||
/*------------------------------------------------------------------------
|
||||
* GROUP_ID 井日GROUP_Group及骄侬毛襞月
|
||||
* GROUP_ID 井日GROUP_Group及骄侬毛襞月
|
||||
*-----------------------------------------------------------------------*/
|
||||
int GROUP_getGroupArray( int groupid)
|
||||
{
|
||||
@ -721,7 +721,7 @@ int GROUP_getGroupArray( int groupid)
|
||||
return -1;
|
||||
}
|
||||
/*------------------------------------------------------------------------
|
||||
* 潸 烦董袄毛综岳允月[
|
||||
* 潸 烦董袄毛综岳允月[
|
||||
*-----------------------------------------------------------------------*/
|
||||
static int ENEMY_getExp( int array,int tarray, int level, int rank )
|
||||
{
|
||||
@ -747,7 +747,7 @@ static int ENEMY_getExp( int array,int tarray, int level, int rank )
|
||||
p = ENEMY_enemy[array].intdata;
|
||||
tp = ENEMYTEMP_enemy[tarray].intdata;
|
||||
|
||||
// 仿件弁井日 毛潸
|
||||
// 仿件弁井日 毛潸
|
||||
if( rank < 0 || rank > 5 ) rank = 0;
|
||||
ranknum = ranktbl[rank].rank;
|
||||
|
||||
@ -756,7 +756,7 @@ static int ENEMY_getExp( int array,int tarray, int level, int rank )
|
||||
+ *( tp + E_T_STONE) + *( tp + E_T_DRUNK) + *(tp + E_T_CONFUSION)
|
||||
) / 100.0
|
||||
+ *( tp + E_T_RARE);
|
||||
/* EXP>湘 EXP≈- 仿件弁≈汐 ←伊矛伙×*/
|
||||
/* EXP>湘 EXP≈- 仿件弁≈汐 ←伊矛伙×*/
|
||||
//return enemybaseexptbl[*(p+ENEMY_LV)] + (ranknum + alpha)*(*(tp+ENEMY_LV));
|
||||
ret = enemybaseexptbl[level] + (ranknum + alpha)*(level+1);
|
||||
return ( ret < 1 ) ? 1 : ret;
|
||||
@ -775,7 +775,7 @@ int ENEMY_getRank( int array, int tarray ){
|
||||
int num;
|
||||
float rank;
|
||||
}ranktbl[] = {
|
||||
{ 100, 2.5}, //总成长率 >= 100 petrank=0
|
||||
{ 100, 2.5}, //总成长率 >= 100 petrank=0
|
||||
{ 95, 2.0},
|
||||
{ 90, 1.5},
|
||||
{ 85, 1.0},
|
||||
@ -785,14 +785,14 @@ int ENEMY_getRank( int array, int tarray ){
|
||||
|
||||
p = ENEMY_enemy[array].intdata;
|
||||
tp = ENEMYTEMP_enemy[tarray].intdata;
|
||||
/* 仿件弁毛煌遥允月 */
|
||||
/* 仇及 及酷 反酷 踏毛辅哔及仪[ */
|
||||
/* 仿件弁毛煌遥允月 */
|
||||
/* 仇及 及酷 反酷 踏毛辅哔及仪[ */
|
||||
paramsum = *( tp + E_T_BASEVITAL) +
|
||||
*( tp + E_T_BASESTR) +
|
||||
*( tp + E_T_BASETGH) +
|
||||
*( tp + E_T_BASEDEX);
|
||||
|
||||
ranknum = 0; // 犯白巧伙玄反ㄟ
|
||||
ranknum = 0; // 犯白巧伙玄反ㄟ
|
||||
for( i = 0; i < arraysizeof( ranktbl); i ++ ) {
|
||||
if( paramsum >= ranktbl[i].num ) {
|
||||
ranknum = i;
|
||||
@ -806,69 +806,69 @@ int ENEMY_getRank( int array, int tarray ){
|
||||
|
||||
|
||||
//*********************************************************
|
||||
// 仿件母丞卅
|
||||
// 仿件母丞卅
|
||||
//*********************************************************
|
||||
static int EnemyGymSkill[] = {
|
||||
PETSKILL_GUARDBREAK, // ㄢ“布□玉旰仄(3)
|
||||
PETSKILL_CONTINUATIONATTACK1, // ㄠㄟ“ 粮 猾(10)
|
||||
PETSKILL_CONTINUATIONATTACK2, // ㄠㄠ“ 粮 猾(11)
|
||||
PETSKILL_CONTINUATIONATTACK3, // ㄠㄡ“ 粮 猾(12)
|
||||
PETSKILL_CHARGE1, // ㄢㄟ“民乓□斥ㄠ(30)
|
||||
PETSKILL_CHARGE2, // ㄢㄠ“民乓□斥ㄡ(31)
|
||||
PETSKILL_MIGHTY1, // ㄣㄟ“域猾 诮(40)
|
||||
PETSKILL_MIGHTY2, // ㄣㄠ“域猾 诮(41)
|
||||
PETSKILL_POWERBALANCE1, // ㄤㄟ“ 及讽ㄠ(50)
|
||||
PETSKILL_POWERBALANCE2, // ㄤㄠ“ 及讽ㄡ(51)
|
||||
PETSKILL_POWERBALANCE3, // ㄤㄡ“ 及讽ㄢ(52)
|
||||
PETSKILL_POISON_ATTACK1, // ㄥㄟ“ 猾(60)
|
||||
PETSKILL_POISON_ATTACK2, // ㄥㄠ“ 猾(61)
|
||||
PETSKILL_STONE, // ㄧㄟ“檗祭 猾(80)
|
||||
PETSKILL_CONFUSION_ATTACK, // ㄨㄟ“渔刭 猾(90)
|
||||
PETSKILL_DRUNK_ATTACK, // ㄠㄟㄟ“听办 猾(100)
|
||||
PETSKILL_SLEEP_ATTACK, // ㄠㄠㄟ“戽曰 猾(110)
|
||||
PETSKILL_NOGUARD1, // ㄠㄤㄟ“用□布□玉ㄠ(150)
|
||||
PETSKILL_NOGUARD2, // ㄠㄤㄠ“用□布□玉ㄡ(151)
|
||||
PETSKILL_NOGUARD3, // ㄠㄤㄡ“用□布□玉ㄢ(152)
|
||||
PETSKILL_GUARDBREAK, // ㄢ“布□玉旰仄(3)
|
||||
PETSKILL_CONTINUATIONATTACK1, // ㄠㄟ“ 粮 猾(10)
|
||||
PETSKILL_CONTINUATIONATTACK2, // ㄠㄠ“ 粮 猾(11)
|
||||
PETSKILL_CONTINUATIONATTACK3, // ㄠㄡ“ 粮 猾(12)
|
||||
PETSKILL_CHARGE1, // ㄢㄟ“民乓□斥ㄠ(30)
|
||||
PETSKILL_CHARGE2, // ㄢㄠ“民乓□斥ㄡ(31)
|
||||
PETSKILL_MIGHTY1, // ㄣㄟ“域猾 诮(40)
|
||||
PETSKILL_MIGHTY2, // ㄣㄠ“域猾 诮(41)
|
||||
PETSKILL_POWERBALANCE1, // ㄤㄟ“ 及讽ㄠ(50)
|
||||
PETSKILL_POWERBALANCE2, // ㄤㄠ“ 及讽ㄡ(51)
|
||||
PETSKILL_POWERBALANCE3, // ㄤㄡ“ 及讽ㄢ(52)
|
||||
PETSKILL_POISON_ATTACK1, // ㄥㄟ“ 猾(60)
|
||||
PETSKILL_POISON_ATTACK2, // ㄥㄠ“ 猾(61)
|
||||
PETSKILL_STONE, // ㄧㄟ“檗祭 猾(80)
|
||||
PETSKILL_CONFUSION_ATTACK, // ㄨㄟ“渔刭 猾(90)
|
||||
PETSKILL_DRUNK_ATTACK, // ㄠㄟㄟ“听办 猾(100)
|
||||
PETSKILL_SLEEP_ATTACK, // ㄠㄠㄟ“戽曰 猾(110)
|
||||
PETSKILL_NOGUARD1, // ㄠㄤㄟ“用□布□玉ㄠ(150)
|
||||
PETSKILL_NOGUARD2, // ㄠㄤㄠ“用□布□玉ㄡ(151)
|
||||
PETSKILL_NOGUARD3, // ㄠㄤㄡ“用□布□玉ㄢ(152)
|
||||
#ifdef _PSKILL_FALLGROUND
|
||||
PETSKILL_FALLGROUND, //落马术
|
||||
PETSKILL_FALLGROUND, //落马术
|
||||
#endif
|
||||
#ifdef _SKILL_DAMAGETOHP
|
||||
PETSKILL_DAMAGETOHP, //嗜血技
|
||||
PETSKILL_DAMAGETOHP, //嗜血技
|
||||
#endif
|
||||
#ifdef _Skill_MPDAMAGE
|
||||
PETSKILL_MPDAMAGE, //MP伤害
|
||||
PETSKILL_MPDAMAGE, //MP伤害
|
||||
#endif
|
||||
|
||||
#ifdef _SKILL_WILDVIOLENT_ATT
|
||||
PETSKILL_WILDVIOLENTATTACK, //(540)狂暴攻击 vincent add 2002/05/16
|
||||
PETSKILL_WILDVIOLENTATTACK, //(540)狂暴攻击 vincent add 2002/05/16
|
||||
#endif
|
||||
#ifdef _SKILL_SPEEDY_ATT
|
||||
PETSKILL_SPEEDYATTACK, //(541)疾速攻击 vincent add 2002/05/16
|
||||
PETSKILL_SPEEDYATTACK, //(541)疾速攻击 vincent add 2002/05/16
|
||||
#endif
|
||||
#ifdef _SKILL_GUARDBREAK2
|
||||
PETSKILL_GUARDBREAK2, //(542)破除防御2 vincent add 2002/05/20
|
||||
PETSKILL_GUARDBREAK2, //(542)破除防御2 vincent add 2002/05/20
|
||||
#endif
|
||||
#ifdef _SKILL_SACRIFICE
|
||||
PETSKILL_SACRIFICE, //(543)救援 vincent add 2002/05/30
|
||||
PETSKILL_SACRIFICE, //(543)救援 vincent add 2002/05/30
|
||||
#endif
|
||||
#ifdef _SKILL_WEAKEN
|
||||
PETSKILL_WEAKEN, //(544)救援 vincent add 2002/07/11
|
||||
PETSKILL_WEAKEN, //(544)救援 vincent add 2002/07/11
|
||||
#endif
|
||||
#ifdef _SKILL_DEEPPOISON
|
||||
PETSKILL_DEEPPOISON, //(545)救援 vincent add 2002/07/16
|
||||
PETSKILL_DEEPPOISON, //(545)救援 vincent add 2002/07/16
|
||||
#endif
|
||||
#ifdef _SKILL_BARRIER
|
||||
PETSKILL_BARRIER, //(546)魔障 vincent add 2002/07/16
|
||||
PETSKILL_BARRIER, //(546)魔障 vincent add 2002/07/16
|
||||
#endif
|
||||
#ifdef _SKILL_NOCAST
|
||||
PETSKILL_NOCAST, //(547)沉默 vincent add 2002/07/16
|
||||
PETSKILL_NOCAST, //(547)沉默 vincent add 2002/07/16
|
||||
#endif
|
||||
#ifdef _SKILL_ROAR
|
||||
PETSKILL_ROAR, //(548)大吼 vincent add 2002/07/11
|
||||
PETSKILL_ROAR, //(548)大吼 vincent add 2002/07/11
|
||||
#endif
|
||||
|
||||
#ifdef _SKILL_REFRESH
|
||||
PETSKILL_REFRESH, //(550)救援 vincent add 2002/08/08
|
||||
PETSKILL_REFRESH, //(550)救援 vincent add 2002/08/08
|
||||
#endif
|
||||
#ifdef _VARY_WOLF
|
||||
PETSKILL_VARY,
|
||||
@ -908,29 +908,29 @@ static int gymbody[] = {
|
||||
|
||||
|
||||
/*------------------------------------------------------------------------
|
||||
* ENEMY{卞仿件母丞卅 毛芨尹月
|
||||
* ENEMY{卞仿件母丞卅 毛芨尹月
|
||||
*-----------------------------------------------------------------------*/
|
||||
int ENEMY_RandomChange( int enemyindex, int tempno )
|
||||
{
|
||||
int work, work2, iRet = 0;
|
||||
|
||||
// 仿件母丞平乓仿井升丹井民尼永弁
|
||||
// 仿件母丞平乓仿井升丹井民尼永弁
|
||||
if( ( 564 <= tempno && tempno <= 580 )
|
||||
|| ( 739 <= tempno && tempno <= 750 )
|
||||
|| ( 895 <= tempno && tempno <= 906 )
|
||||
){
|
||||
//********************************************
|
||||
// 皿伊奶乩□及涌
|
||||
// 皿伊奶乩□及涌
|
||||
//********************************************
|
||||
iRet = 1;
|
||||
}else
|
||||
// 仿件母丞平乓仿井升丹井民尼永弁
|
||||
// 仿件母丞平乓仿井升丹井民尼永弁
|
||||
if( ( 655 <= tempno && tempno <= 720 )
|
||||
|| ( 859 <= tempno && tempno <= 894 )
|
||||
|| ( 907 <= tempno && tempno <= 940 )
|
||||
){
|
||||
//********************************************
|
||||
// 矢永玄及涌
|
||||
// 矢永玄及涌
|
||||
//********************************************
|
||||
iRet = 2;
|
||||
}else{
|
||||
@ -941,15 +941,15 @@ int ENEMY_RandomChange( int enemyindex, int tempno )
|
||||
if( iRet == 1 ){
|
||||
//********************************************
|
||||
//
|
||||
// 皿伊奶乩□及涌仄凶衬卅及匹}箪岭手仿件母丞
|
||||
// 皿伊奶乩□及涌仄凶衬卅及匹}箪岭手仿件母丞
|
||||
//
|
||||
//********************************************
|
||||
// 铣手仿件母丞
|
||||
// 铣手仿件母丞
|
||||
CHAR_setInt( enemyindex, CHAR_BASEBASEIMAGENUMBER,
|
||||
gymbody[RAND( 0, arraysizeof( gymbody ) - 1)] );
|
||||
CHAR_setInt( enemyindex, CHAR_BASEIMAGENUMBER,
|
||||
CHAR_getInt( enemyindex, CHAR_BASEBASEIMAGENUMBER ) );
|
||||
// 箪岭反赝癫
|
||||
// 箪岭反赝癫
|
||||
work = ( RAND( 0, 20 ) - 10 ) * 10;
|
||||
work2 = 100 - ABS( work );
|
||||
CHAR_setInt( enemyindex, CHAR_EARTHAT, work );
|
||||
@ -960,28 +960,28 @@ int ENEMY_RandomChange( int enemyindex, int tempno )
|
||||
CHAR_setInt( enemyindex, CHAR_WATERAT, work2 );
|
||||
CHAR_setInt( enemyindex, CHAR_WINDAT, -work2 );
|
||||
|
||||
// 仿件母丞卅 湛毛 凶六月
|
||||
// 仿件母丞卅 湛毛 凶六月
|
||||
if( DoujyouRandomWeponSet( enemyindex ) ){
|
||||
// 溃 湛及桦宁反骚橘 猾毛勾仃月
|
||||
// 溃 湛及桦宁反骚橘 猾毛勾仃月
|
||||
CHAR_setPetSkill( enemyindex, 0, PETSKILL_NORMALATTACK );
|
||||
CHAR_setPetSkill( enemyindex, 1, PETSKILL_NORMALATTACK );
|
||||
}else{
|
||||
// 溃 湛元扎卅中及匹 勾仃月
|
||||
// 毛尥仃月
|
||||
// 溃 湛元扎卅中及匹 勾仃月
|
||||
// 毛尥仃月
|
||||
CHAR_setPetSkill( enemyindex, 0,
|
||||
EnemyGymSkill[RAND( 0, arraysizeof( EnemyGymSkill ) - 1 )] );
|
||||
// 毛尥仃月
|
||||
// 毛尥仃月
|
||||
CHAR_setPetSkill( enemyindex, 1,
|
||||
EnemyGymSkill[RAND( 0, arraysizeof( EnemyGymSkill ) - 1 )] );
|
||||
}
|
||||
|
||||
}else
|
||||
if( iRet == 2 ){
|
||||
// 溃 湛元扎卅中及匹 勾仃月
|
||||
// 毛尥仃月
|
||||
// 溃 湛元扎卅中及匹 勾仃月
|
||||
// 毛尥仃月
|
||||
CHAR_setPetSkill( enemyindex, 0,
|
||||
EnemyGymSkill[RAND( 0, arraysizeof( EnemyGymSkill ) - 1 )] );
|
||||
// 毛尥仃月
|
||||
// 毛尥仃月
|
||||
CHAR_setPetSkill( enemyindex, 1,
|
||||
EnemyGymSkill[RAND( 0, arraysizeof( EnemyGymSkill ) - 1 )] );
|
||||
}
|
||||
@ -992,7 +992,7 @@ int ENEMY_RandomChange( int enemyindex, int tempno )
|
||||
|
||||
|
||||
/*------------------------------------------------------------------------
|
||||
* ENEMY_enemy井日平乓仿弁正□毛综岳允月[
|
||||
* ENEMY_enemy井日平乓仿弁正□毛综岳允月[
|
||||
*-----------------------------------------------------------------------*/
|
||||
int ENEMY_createEnemy( int array, int baselevel )
|
||||
{
|
||||
@ -1011,50 +1011,50 @@ int ENEMY_createEnemy( int array, int baselevel )
|
||||
tarray = ENEMYTEMP_getEnemyTempArray( array);
|
||||
if( !ENEMYTEMP_CHECKINDEX( tarray)) return -1;
|
||||
// tp = ENEMYTEMP_enemy[tarray].intdata;
|
||||
// 犯□正戊疋□
|
||||
// 犯□正戊疋□
|
||||
for( i = 0; i < E_T_DATAINTNUM; i ++ ){
|
||||
tp[i] = ENEMYTEMP_enemy[tarray].intdata[i];
|
||||
}
|
||||
|
||||
// 赓渝祭
|
||||
// 赓渝祭
|
||||
memset( &CharNew, 0, sizeof( Char ) );
|
||||
|
||||
if( !CHAR_getDefaultChar( &CharNew,31010 ) )return -1;
|
||||
|
||||
/* 飓 寞 */
|
||||
/* 飓 寞 */
|
||||
CharNew.data[CHAR_BASEBASEIMAGENUMBER]
|
||||
= CharNew.data[CHAR_BASEIMAGENUMBER] = *(tp+E_T_IMGNUMBER);
|
||||
/* 衬匹丐月午涩烂允月 */
|
||||
/* 衬匹丐月午涩烂允月 */
|
||||
CharNew.data[CHAR_WHICHTYPE] = CHAR_TYPEENEMY;
|
||||
/* 毛壅允 */
|
||||
/* 毛壅允 */
|
||||
CharNew.data[CHAR_DUELPOINT] = 0;
|
||||
|
||||
/* 伊矛伙毛瑁烂允月[ */
|
||||
/* 伊矛伙毛瑁烂允月[ */
|
||||
if( baselevel > 0 ){
|
||||
level = baselevel; // 伊矛伙裔烂
|
||||
level = baselevel; // 伊矛伙裔烂
|
||||
}else{
|
||||
level = RAND( (*(p + ENEMY_LV_MIN)), (*(p+ ENEMY_LV_MAX)));
|
||||
}
|
||||
#define E_PAR( a) (*(p + (a)))
|
||||
#define ET_PAR( a) (*(tp + (a)))
|
||||
/* 由仿丢□正隙醒井日 端及湘 由仿丢□正尺及煌遥挚 */
|
||||
/* 由仿丢□正隙醒井日 端及湘 由仿丢□正尺及煌遥挚 */
|
||||
#if 1
|
||||
#define PARAM_CAL( l) ( ( level -1)*ET_PAR( E_T_LVUPPOINT)+ ET_PAR(E_T_INITNUM)) * ET_PAR( (l))
|
||||
#else
|
||||
#define PARAM_CAL( l) ( (E_PAR(ENEMY_LV) -1)*ET_PAR( E_T_LVUPPOINT)+ ET_PAR(E_T_INITNUM)) * ET_PAR( (l))
|
||||
#endif
|
||||
/* 燮内湘 喃曰蕊曰禾奶件玄卞+ㄡ毛仿件母丞匹垫丹 */
|
||||
/* 燮内湘 喃曰蕊曰禾奶件玄卞+ㄡ毛仿件母丞匹垫丹 */
|
||||
tp[E_T_BASEVITAL] += RAND( 0, 4 ) - 2;
|
||||
tp[E_T_BASESTR] += RAND( 0, 4 ) - 2;
|
||||
tp[E_T_BASETGH] += RAND( 0, 4 ) - 2;
|
||||
tp[E_T_BASEDEX] += RAND( 0, 4 ) - 2;
|
||||
/* 仇及凛鳔匹喃曰蕊曰禾奶件玄毛忡绣仄化云仁 */
|
||||
/* 仇及凛鳔匹喃曰蕊曰禾奶件玄毛忡绣仄化云仁 */
|
||||
CharNew.data[CHAR_ALLOCPOINT]
|
||||
= ( tp[E_T_BASEVITAL] << 24 )
|
||||
+ ( tp[E_T_BASESTR] << 16 )
|
||||
+ ( tp[E_T_BASETGH] << 8 )
|
||||
+ ( tp[E_T_BASEDEX] << 0 );
|
||||
/* 公及 }仿件母丞匹禾奶件玄毛ㄠ勿勾笛遥[仇木毛ㄠㄟ荚楞曰忒允[*/
|
||||
/* 公及 }仿件母丞匹禾奶件玄毛ㄠ勿勾笛遥[仇木毛ㄠㄟ荚楞曰忒允[*/
|
||||
for( i = 0; i < 10; i ++ ){
|
||||
int work = RAND( 0, 3 );
|
||||
if( work == 0 )tp[E_T_BASEVITAL]++;
|
||||
@ -1063,7 +1063,7 @@ int ENEMY_createEnemy( int array, int baselevel )
|
||||
if( work == 3 )tp[E_T_BASEDEX]++;
|
||||
}
|
||||
|
||||
/* 由仿丢□正本永玄 */
|
||||
/* 由仿丢□正本永玄 */
|
||||
CharNew.data[CHAR_VITAL] = PARAM_CAL(E_T_BASEVITAL);
|
||||
CharNew.data[CHAR_STR] = PARAM_CAL(E_T_BASESTR);
|
||||
CharNew.data[CHAR_TOUGH] = PARAM_CAL(E_T_BASETGH);
|
||||
@ -1111,9 +1111,9 @@ int ENEMY_createEnemy( int array, int baselevel )
|
||||
|
||||
newindex = CHAR_initCharOneArray( &CharNew );
|
||||
#ifdef _CAX_LVTISHI
|
||||
if (CHAR_getInt( newindex, CHAR_LV) == 1){//宝宝
|
||||
if (CHAR_getInt( newindex, CHAR_LV) == 1){//宝宝
|
||||
char buff[256];
|
||||
snprintf( buff, sizeof( buff),"%s宝宝",CHAR_getChar( newindex, CHAR_NAME));
|
||||
snprintf( buff, sizeof( buff),"%s宝宝",CHAR_getChar( newindex, CHAR_NAME));
|
||||
CHAR_setChar( newindex, CHAR_NAME, buff);
|
||||
}
|
||||
#endif
|
||||
@ -1140,12 +1140,12 @@ if (CHAR_getInt( newindex, CHAR_LV) == 1){//
|
||||
style = (*(p + ENEMY_STYLE));
|
||||
switch( style ){
|
||||
case 1: wepon = 0;break; //
|
||||
case 2: wepon = 100;break; // 轺徇
|
||||
case 3: wepon = 200;break; // 键
|
||||
case 4: wepon = 400;break; // 菰
|
||||
case 5: wepon = 500;break; // 皮□丢仿件
|
||||
case 6: wepon = 700;break; // 髑仆檗
|
||||
case 7: wepon = 600;break; // 髑仆
|
||||
case 2: wepon = 100;break; // 轺徇
|
||||
case 3: wepon = 200;break; // 键
|
||||
case 4: wepon = 400;break; // 菰
|
||||
case 5: wepon = 500;break; // 皮□丢仿件
|
||||
case 6: wepon = 700;break; // 髑仆檗
|
||||
case 7: wepon = 600;break; // 髑仆
|
||||
default:break;
|
||||
}
|
||||
if( wepon >= 0 ){
|
||||
@ -1181,7 +1181,7 @@ if (CHAR_getInt( newindex, CHAR_LV) == 1){//
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#ifdef _PETSKILL_BECOMEFOX //将媚惑术中招时间清除为-1
|
||||
#ifdef _PETSKILL_BECOMEFOX //将媚惑术中招时间清除为-1
|
||||
CHAR_setWorkInt( newindex, CHAR_WORKFOXROUND, -1 );
|
||||
#endif
|
||||
return newindex;
|
||||
@ -1246,35 +1246,35 @@ static RANDOMENEMY RandomEnemyTbl[] = {
|
||||
|
||||
|
||||
/*------------------------------------------------------------
|
||||
* 衬 涩烂及摹 寞互 溃卅袄卅日仿件母丞卞涩烂允月
|
||||
* 衬 涩烂及摹 寞互 溃卅袄卅日仿件母丞卞涩烂允月
|
||||
------------------------------------------------------------*/
|
||||
int ENEMY_RandomEnemyArray( int e_array, int *pNew )
|
||||
{
|
||||
int i = 0, randwork, work;
|
||||
// RANDOMENEMY *pRandomEnemy;
|
||||
*pNew = -1;
|
||||
// 仇及 区反仿件母丞
|
||||
// 仇及 区反仿件母丞
|
||||
if(
|
||||
( RANDOMENEMY_TOP <= e_array && e_array <= RANDOMENEMY_END )
|
||||
|| ( 964 <= e_array && e_array <= 969 )
|
||||
){
|
||||
// 升及母立□井譬屯月
|
||||
// 升及母立□井譬屯月
|
||||
for( i = 0; i < arraysizeof( RandomEnemyTbl ); i ++ ){
|
||||
if( RandomEnemyTbl[i].num == e_array ){
|
||||
break;
|
||||
}
|
||||
}
|
||||
// 区毛译尹化中凶日巨仿□匹 仃月
|
||||
// 区毛译尹化中凶日巨仿□匹 仃月
|
||||
if( i >= arraysizeof( RandomEnemyTbl ) ) return 0;
|
||||
|
||||
// 仿件母丞涩烂
|
||||
// 仿件母丞涩烂
|
||||
randwork = RAND( 0, RandomEnemyTbl[i].arraysize - 1 );
|
||||
// 井日蕙仄中 寞毛潸
|
||||
// 井日蕙仄中 寞毛潸
|
||||
work = RandomEnemyTbl[i].pTbl[randwork];
|
||||
*pNew = ENEMY_getEnemyArrayFromId( work );
|
||||
return 1;
|
||||
}else{
|
||||
// 窒仪手卅中
|
||||
// 窒仪手卅中
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
@ -1373,7 +1373,7 @@ int *ENEMY_getEnemy( int charaindex, int x, int y)
|
||||
int newarray, enemywork;
|
||||
e_array = ENEMY_getEnemyArrayFromIndex( g_array, i - ENEMY_ID1 );
|
||||
|
||||
#ifdef _ADD_ENCOUNT // WON ADD 增加敌遭遇触发修件
|
||||
#ifdef _ADD_ENCOUNT // WON ADD 增加敌遭遇触发修件
|
||||
{
|
||||
int char_event_now = -1, char_event_end = -1;
|
||||
if(ENCOUNT_table[array].event_now != -1){
|
||||
@ -1525,7 +1525,7 @@ int ENEMY_createPetFromEnemyIndex( int charaindex, int array)
|
||||
if( work == 2 )tp[E_T_BASETGH]++;
|
||||
if( work == 3 )tp[E_T_BASEDEX]++;
|
||||
}
|
||||
/* 由仿丢□正本永玄 */
|
||||
/* 由仿丢□正本永玄 */
|
||||
CharNew.data[CHAR_VITAL] = PARAM_CAL(E_T_BASEVITAL);
|
||||
CharNew.data[CHAR_STR] = PARAM_CAL(E_T_BASESTR);
|
||||
CharNew.data[CHAR_TOUGH] = PARAM_CAL(E_T_BASETGH);
|
||||
@ -1657,7 +1657,7 @@ int ENEMY_createPet( int array, int vital, int str, int tgh, int dex)
|
||||
if( work == 2 )tp[E_T_BASETGH]++;
|
||||
if( work == 3 )tp[E_T_BASEDEX]++;
|
||||
}
|
||||
/* 由仿丢□正本永玄 */
|
||||
/* 由仿丢□正本永玄 */
|
||||
CharNew.data[CHAR_VITAL] = PARAM_CAL(E_T_BASEVITAL);
|
||||
CharNew.data[CHAR_STR] = PARAM_CAL(E_T_BASESTR);
|
||||
CharNew.data[CHAR_TOUGH] = PARAM_CAL(E_T_BASETGH);
|
||||
@ -1781,7 +1781,7 @@ int ENEMY_createPetFromEnemyBaseIndex( int charaindex, int array, int level )
|
||||
if( work == 2 )tp[E_T_BASETGH]++;
|
||||
if( work == 3 )tp[E_T_BASEDEX]++;
|
||||
}
|
||||
/* 由仿丢□正本永玄 */
|
||||
/* 由仿丢□正本永玄 */
|
||||
CharNew.data[CHAR_VITAL] = PARAM_CAL(E_T_BASEVITAL);
|
||||
CharNew.data[CHAR_STR] = PARAM_CAL(E_T_BASESTR);
|
||||
CharNew.data[CHAR_TOUGH] = PARAM_CAL(E_T_BASETGH);
|
||||
@ -1933,9 +1933,9 @@ int ENEMY_TEST_createPetIndex( int array)
|
||||
(char *)ENEMYTEMP_enemy[tarray].chardata[E_T_NAME].string );
|
||||
newindex = PET_initCharOneArray( &CharNew );
|
||||
#ifdef _CAX_LVTISHI
|
||||
if (CHAR_getInt( newindex, CHAR_LV) == 1){//宝宝
|
||||
if (CHAR_getInt( newindex, CHAR_LV) == 1){//宝宝
|
||||
char buff[256];
|
||||
snprintf( buff, sizeof( buff),"%s宝宝",CHAR_getChar( newindex, CHAR_NAME));
|
||||
snprintf( buff, sizeof( buff),"%s宝宝",CHAR_getChar( newindex, CHAR_NAME));
|
||||
CHAR_setChar( newindex, CHAR_NAME, buff);
|
||||
}
|
||||
#endif
|
||||
@ -1982,19 +1982,19 @@ BOOL PETFUSION_getIndexForChar( int toindex, int *MainIndex, int *Subindex1, int
|
||||
#endif
|
||||
#ifdef _PET_2TRANS
|
||||
if( CHAR_getInt( petindex, CHAR_TRANSMIGRATION ) ==2){
|
||||
CHAR_talkToCli( toindex, -1, "二转宠物不能融合。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( toindex, -1, "二转宠物不能融合。", CHAR_COLORYELLOW);
|
||||
return FALSE;
|
||||
}
|
||||
#endif
|
||||
#ifdef _CAX_PET_EVOLUTION
|
||||
}
|
||||
if( CHAR_getInt( petindex, CHAR_TRANSMIGRATION ) == 3 ) {
|
||||
CHAR_talkToCli( toindex, -1, "三转宠物不能融合。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( toindex, -1, "三转宠物不能融合。", CHAR_COLORYELLOW);
|
||||
return FALSE;
|
||||
}
|
||||
#endif
|
||||
if( rideindex == petindex) {
|
||||
CHAR_talkToCli( toindex, -1, "骑乘中的宠不能融合。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( toindex, -1, "骑乘中的宠不能融合。", CHAR_COLORYELLOW);
|
||||
return FALSE;
|
||||
}
|
||||
if( i == 0 ) {
|
||||
@ -2024,7 +2024,7 @@ int NPC_getPetArrayForNo( int PetCode)
|
||||
}
|
||||
int NPC_getFusionTableForBase( int charaindex, int petindex1, int petindex2 )
|
||||
{
|
||||
int base1, base2;// 属性,PETCODE
|
||||
int base1, base2;// 属性,PETCODE
|
||||
if( !CHAR_CHECKINDEX( petindex1) ) return -1;
|
||||
if( !CHAR_CHECKINDEX( petindex2) ) return -1;
|
||||
#ifdef _PET_EVOLUTION
|
||||
@ -2115,9 +2115,9 @@ int EVOLUTION_createPetFromEnemyIndex( int charaindex, int baseindex, int flg)
|
||||
#ifdef _illegalpetskill_CF
|
||||
int illegalpetskill[25] = {41,52,600,601,602,603,604,614,617,628,630,631,635,638,641,
|
||||
getIllegalPetskill(0),getIllegalPetskill(1),getIllegalPetskill(2),getIllegalPetskill(3),getIllegalPetskill(4),
|
||||
getIllegalPetskill(5),getIllegalPetskill(6),getIllegalPetskill(7),getIllegalPetskill(8),getIllegalPetskill(9)};//自定义禁止遗传宠物技能
|
||||
getIllegalPetskill(5),getIllegalPetskill(6),getIllegalPetskill(7),getIllegalPetskill(8),getIllegalPetskill(9)};//自定义禁止遗传宠物技能
|
||||
#else
|
||||
int illegalpetskill[15] = {41,52,600,601,602,603,604,614,617,628,630,631,635,638,641};//不可遗传的宠技
|
||||
int illegalpetskill[15] = {41,52,600,601,602,603,604,614,617,628,630,631,635,638,641};//不可遗传的宠技
|
||||
#endif
|
||||
#define E_PAR( a) (*(p + (a)))
|
||||
#define ET_PAR( a) (*(tp + (a)))
|
||||
@ -2159,9 +2159,9 @@ int EVOLUTION_createPetFromEnemyIndex( int charaindex, int baseindex, int flg)
|
||||
return -1;
|
||||
}
|
||||
if( PET_getEvolutionAns( baseindex, base) == FALSE ) return -1;
|
||||
for( i=0; i < CHAR_MAXPETSKILLHAVE; i ++ ) {//宠技
|
||||
for( i=0; i < CHAR_MAXPETSKILLHAVE; i ++ ) {//宠技
|
||||
int j;
|
||||
for( j=0; j<15; j++) { //检查非法技能
|
||||
for( j=0; j<15; j++) { //检查非法技能
|
||||
if( illegalpetskill[j] == petskill[i] ){
|
||||
petskill[i] = -1;
|
||||
break;
|
||||
@ -2174,7 +2174,7 @@ int EVOLUTION_createPetFromEnemyIndex( int charaindex, int baseindex, int flg)
|
||||
}
|
||||
}
|
||||
if( flg == 1 ){
|
||||
havepetelement = CHAR_getCharPetElement( charaindex);//找出宠物空位
|
||||
havepetelement = CHAR_getCharPetElement( charaindex);//找出宠物空位
|
||||
if( havepetelement < 0 ) return -1;
|
||||
}
|
||||
//------------------------------------------------------
|
||||
@ -2277,7 +2277,7 @@ int PET_CheckIncubate( int charaindex)
|
||||
int petindex = CHAR_getCharPet( charaindex, i);
|
||||
if( !CHAR_CHECKINDEX( petindex) ) continue;
|
||||
if( CHAR_getInt( petindex, CHAR_FUSIONBEIT) != 1 ||
|
||||
CHAR_getInt( petindex, CHAR_FUSIONRAISE) <= 0 )return;//检查是否为融合宠
|
||||
CHAR_getInt( petindex, CHAR_FUSIONRAISE) <= 0 )return;//检查是否为融合宠
|
||||
|
||||
time_l = CHAR_getInt( petindex, CHAR_FUSIONTIMELIMIT);
|
||||
if( time_l < 0 || time_l > checkeage ){
|
||||
@ -2289,7 +2289,7 @@ int PET_CheckIncubate( int charaindex)
|
||||
char buf[256];
|
||||
int levelup, vital, str, tgh, dex;
|
||||
int raise = CHAR_getInt( petindex, CHAR_FUSIONRAISE);
|
||||
//喂养次数
|
||||
//喂养次数
|
||||
raise++;
|
||||
CHAR_setInt( petindex, CHAR_FUSIONTIMELIMIT, (int)time(NULL)+anhour-1);
|
||||
if( raise < 0 ) raise = 0;
|
||||
@ -2304,10 +2304,10 @@ int PET_CheckIncubate( int charaindex)
|
||||
if( str < 0 ) str = 0;
|
||||
if( tgh < 0 ) tgh = 0;
|
||||
if( dex < 0 ) dex = 0;
|
||||
//扣属性
|
||||
//扣属性
|
||||
levelup = (vital<<24) + (str<<16) + (tgh<<8) + (dex<<0);
|
||||
CHAR_setInt( petindex, CHAR_ALLOCPOINT, levelup);
|
||||
sprintf( buf, "蛋〈%s〉的品质变差了。", CHAR_getUseName( petindex ));
|
||||
sprintf( buf, "蛋〈%s〉的品质变差了。", CHAR_getUseName( petindex ));
|
||||
CHAR_talkToCli( charaindex, -1, buf, CHAR_COLORYELLOW);
|
||||
|
||||
LogPetFeed(
|
||||
@ -2316,7 +2316,7 @@ int PET_CheckIncubate( int charaindex)
|
||||
CHAR_getChar( petindex, CHAR_NAME),
|
||||
petindex,
|
||||
CHAR_getInt( petindex, CHAR_LV),
|
||||
"品质变差", // Key
|
||||
"品质变差", // Key
|
||||
CHAR_getInt( charaindex, CHAR_FLOOR),
|
||||
CHAR_getInt( charaindex, CHAR_X),
|
||||
CHAR_getInt( charaindex, CHAR_Y),
|
||||
@ -2325,7 +2325,7 @@ int PET_CheckIncubate( int charaindex)
|
||||
}else if( (int)checkeage > (time_l+anhour) ){
|
||||
|
||||
char buf[256];
|
||||
sprintf( buf, "蛋〈%s〉呈现可喂食状态。", CHAR_getUseName( petindex ));
|
||||
sprintf( buf, "蛋〈%s〉呈现可喂食状态。", CHAR_getUseName( petindex ));
|
||||
CHAR_talkToCli( charaindex, -1, buf, CHAR_COLORYELLOW);
|
||||
}
|
||||
}
|
||||
@ -2340,7 +2340,7 @@ int PET_CheckIncubate( int charaindex)
|
||||
if( !CHAR_CHECKINDEX( masterindex) )return 0;
|
||||
|
||||
if( CHAR_getInt( charaindex, CHAR_FUSIONBEIT) != 1 ||
|
||||
CHAR_getInt( charaindex, CHAR_FUSIONRAISE) <= 0 ) return 0;//检查是否为融合宠
|
||||
CHAR_getInt( charaindex, CHAR_FUSIONRAISE) <= 0 ) return 0;//检查是否为融合宠
|
||||
|
||||
for(i=0 ; i < CHAR_MAXPETHAVE ; i++) {
|
||||
if( charaindex != CHAR_getCharPet( masterindex, i) ) continue;
|
||||
@ -2373,10 +2373,10 @@ int PET_CheckIncubate( int charaindex)
|
||||
if( str < 0 ) str = 0;
|
||||
if( tgh < 0 ) tgh = 0;
|
||||
if( dex < 0 ) dex = 0;
|
||||
//扣属性
|
||||
//扣属性
|
||||
levelup = (vital<<24) + (str<<16) + (tgh<<8) + (dex<<0);
|
||||
CHAR_setInt( charaindex, CHAR_ALLOCPOINT, levelup);
|
||||
sprintf( buf, "蛋〈%s〉的品质变差了。", CHAR_getUseName( charaindex ));
|
||||
sprintf( buf, "蛋〈%s〉的品质变差了。", CHAR_getUseName( charaindex ));
|
||||
CHAR_talkToCli( masterindex, -1, buf, CHAR_COLORYELLOW);
|
||||
|
||||
LogPetFeed(
|
||||
@ -2385,7 +2385,7 @@ int PET_CheckIncubate( int charaindex)
|
||||
CHAR_getChar( charaindex, CHAR_NAME),
|
||||
charaindex,
|
||||
CHAR_getInt( charaindex, CHAR_LV),
|
||||
"品质变差", // Key
|
||||
"品质变差", // Key
|
||||
CHAR_getInt( masterindex, CHAR_FLOOR),
|
||||
CHAR_getInt( masterindex, CHAR_X),
|
||||
CHAR_getInt( masterindex, CHAR_Y),
|
||||
@ -2393,7 +2393,7 @@ int PET_CheckIncubate( int charaindex)
|
||||
|
||||
}else if( (int)checkeage > (time_l+anhour) ){
|
||||
char buf[256];
|
||||
sprintf( buf, "蛋〈%s〉呈现可喂食状态。", CHAR_getUseName( charaindex ));
|
||||
sprintf( buf, "蛋〈%s〉呈现可喂食状态。", CHAR_getUseName( charaindex ));
|
||||
CHAR_talkToCli( masterindex, -1, buf, CHAR_COLORYELLOW);
|
||||
}
|
||||
return 1;
|
||||
@ -2474,14 +2474,14 @@ int PETFUSION_SetNewEgg( int toindex , int petindex, int array, int *work, int *
|
||||
CHAR_setMaxExp( petindex, 0);
|
||||
CHAR_setInt( petindex, CHAR_LV, level);
|
||||
|
||||
//宠物技能设为七技
|
||||
//宠物技能设为七技
|
||||
CHAR_setInt( petindex, CHAR_SLOT, 7);
|
||||
{
|
||||
int j;
|
||||
#ifdef _illegalpetskill_CF
|
||||
int illegalpetskill[25] = {41,52,600,601,602,603,604,614,617,628,630,631,635,638,641,
|
||||
getIllegalPetskill(0),getIllegalPetskill(1),getIllegalPetskill(2),getIllegalPetskill(3),getIllegalPetskill(4),
|
||||
getIllegalPetskill(5),getIllegalPetskill(6),getIllegalPetskill(7),getIllegalPetskill(8),getIllegalPetskill(9)};//自定义禁止遗传宠物技能
|
||||
getIllegalPetskill(5),getIllegalPetskill(6),getIllegalPetskill(7),getIllegalPetskill(8),getIllegalPetskill(9)};//自定义禁止遗传宠物技能
|
||||
#else
|
||||
int illegalpetskill[15] = {41,52,600,601,602,603,604,614,617,628,630,631,635,638,641};
|
||||
#endif
|
||||
@ -2489,7 +2489,7 @@ int PETFUSION_SetNewEgg( int toindex , int petindex, int array, int *work, int *
|
||||
if( RAND( 0, 1 ) == 0 ) {
|
||||
skill1[i] = skill2[i];
|
||||
}
|
||||
for( j=0; j<15; j++) { //检查非法技能
|
||||
for( j=0; j<15; j++) { //检查非法技能
|
||||
if( illegalpetskill[j] == skill1[i] ){
|
||||
skill1[i] = -1;
|
||||
break;
|
||||
@ -2566,14 +2566,14 @@ BOOL PETFUSION_AddEgg( int toindex, int petID, int PetCode)
|
||||
int i,j;
|
||||
int petindex, petindex2;
|
||||
|
||||
//检查宠物栏是否有空位
|
||||
//检查宠物栏是否有空位
|
||||
for( i = 0 ;i < CHAR_MAXPETHAVE ; i++) {
|
||||
petindex = CHAR_getCharPet( toindex, i);
|
||||
if( petindex == -1 )
|
||||
break;
|
||||
}
|
||||
if( i == CHAR_MAXPETHAVE ) {
|
||||
snprintf( msgbuf,sizeof( msgbuf), "宠物已满!!");
|
||||
snprintf( msgbuf,sizeof( msgbuf), "宠物已满!!");
|
||||
CHAR_talkToCli( toindex, -1, msgbuf, CHAR_COLORYELLOW);
|
||||
return -1;
|
||||
}
|
||||
@ -2603,7 +2603,7 @@ BOOL PETFUSION_AddEgg( int toindex, int petID, int PetCode)
|
||||
return -1;
|
||||
}
|
||||
CHAR_setInt( petindex2, CHAR_FUSIONINDEX, PetCode);
|
||||
snprintf( msgbuf,sizeof( msgbuf), "拿到%s。", CHAR_getChar(petindex2,CHAR_NAME));
|
||||
snprintf( msgbuf,sizeof( msgbuf), "拿到%s。", CHAR_getChar(petindex2,CHAR_NAME));
|
||||
CHAR_talkToCli( toindex, -1, msgbuf, CHAR_COLORYELLOW);
|
||||
for(j = 0; j < CHAR_MAXPETHAVE; j++){
|
||||
petindex = CHAR_getCharPet(toindex, j);
|
||||
@ -2724,7 +2724,7 @@ int GetNewPet( int toindex , int petindex, int array, int *work)
|
||||
CHAR_setInt( petindex, CHAR_DEX , ( PARAM_CAL(E_T_BASEDEX) * work[3] ));
|
||||
CHAR_setMaxExp( petindex, 0);
|
||||
CHAR_setInt( petindex, CHAR_LV, level);
|
||||
//宠物技能设为七技
|
||||
//宠物技能设为七技
|
||||
CHAR_setInt( petindex, CHAR_SLOT, 7);
|
||||
/* for( i=0; i<CHAR_MAXPETSKILLHAVE; i++) {
|
||||
petskill = CHAR_getPetSkill( petindex, i);
|
||||
|
@ -18,11 +18,11 @@ static int EVENY_npcEncount( int charaindex,int echaraindex,int fl,int x, int y
|
||||
typedef int (*FUNC)( int charaindex,int echaraindex,int fl,int x, int y );
|
||||
static FUNC functbl[] = {
|
||||
NULL,
|
||||
NULL, /* 裔烂NPC */
|
||||
EVENY_npcEncount, /* 裔烂衬巨件市它件玄 */
|
||||
NULL, /* 裔烂NPC */
|
||||
EVENY_npcEncount, /* 裔烂衬巨件市它件玄 */
|
||||
EVENT_onWarpNPC, /* warp*/
|
||||
NULL, /* 裔烂NPC */
|
||||
NULL, /* 裔烂NPC */
|
||||
NULL, /* 裔烂NPC */
|
||||
NULL, /* 裔烂NPC */
|
||||
EVENT_onWarpNPC, /* warp*/
|
||||
EVENT_onWarpNPC, /* warp*/
|
||||
EVENT_onWarpNPC, /* warp*/
|
||||
|
438
char/family.c
438
char/family.c
File diff suppressed because it is too large
Load Diff
398
char/pet.c
398
char/pet.c
@ -17,166 +17,166 @@
|
||||
|
||||
|
||||
/*
|
||||
* 矢永玄质 卞楮允月末□旦
|
||||
* 矢永玄质 卞楮允月末□旦
|
||||
*/
|
||||
/*------------------------------------------------------------------------
|
||||
* 矢永玄毛ㄠ勾喃曰癫化月[犯田永弘迕[
|
||||
* CHAR厌瞻 卞及心综岳今木月[
|
||||
* 曰袄“综岳今木凶平乓仿index 撩 “-1
|
||||
* 矢永玄毛ㄠ勾喃曰癫化月[犯田永弘迕[
|
||||
* CHAR厌瞻 卞及心综岳今木月[
|
||||
* 曰袄“综岳今木凶平乓仿index 撩 “-1
|
||||
*-----------------------------------------------------------------------*/
|
||||
char hanzibuf[5000][8] = {"阿","啊","哀","唉","挨","矮","爱","碍","安","岸","按","案","暗","昂","袄","傲","奥","八","巴","扒","吧","疤","拔","把","坝","爸","罢","霸","白","百","柏","摆","败","拜","班","般","斑","搬","板","版","办",
|
||||
"半","伴","扮","拌","瓣","帮","绑","榜","膀","傍","棒","包","胞","雹","宝","饱","保","堡","报","抱","暴","爆","杯","悲","碑","北","贝","备","背","倍","被","辈","奔","本","笨","蹦","逼","鼻","比","彼","笔",
|
||||
"鄙","币","必","毕","闭","毙","弊","碧","蔽","壁","避","臂","边","编","鞭","扁","便","变","遍","辨","辩","辫","标","表","别","宾","滨","冰","兵","丙","柄","饼","并","病","拨","波","玻","剥","脖","菠","播",
|
||||
"伯","驳","泊","博","搏","膊","薄","卜","补","捕","不","布","步","怖","部","擦","猜","才","材","财","裁","采","彩","睬","踩","菜","参","餐","残","蚕","惭","惨","灿","仓","苍","舱","藏","操","槽","草","册",
|
||||
"侧","厕","测","策","层","叉","插","查","茶","察","岔","差","拆","柴","馋","缠","产","铲","颤","昌","长","肠","尝","偿","常","厂","场","敞","畅","倡","唱","抄","钞","超","朝","潮","吵","炒","车","扯","彻",
|
||||
"撤","尘","臣","沉","辰","陈","晨","闯","衬","称","趁","撑","成","呈","承","诚","城","乘","惩","程","秤","吃","驰","迟","持","池","匙","尺","齿","耻","斥","赤","翅","充","冲","虫","崇","抽","仇","绸","愁",
|
||||
"稠","筹","酬","丑","臭","出","初","除","厨","锄","础","储","楚","处","触","畜","川","穿","传","船","喘","串","疮","窗","床","创","吹","炊","垂","锤","春","纯","唇","蠢","词","慈","辞","磁","此","次","刺",
|
||||
"从","匆","葱","聪","丛","凑","粗","促","醋","窜","催","摧","脆","翠","村","存","寸","错","曾","搭","达","答","打","大","呆","代","带","待","怠","贷","袋","逮","戴","丹","单","担","耽","胆","旦","但","诞",
|
||||
"弹","淡","蛋","当","挡","党","荡","档","刀","叨","导","岛","倒","蹈","到","悼","盗","道","稻","得","德","的","灯","登","等","凳","低","堤","滴","敌","笛","底","抵","地","弟","帝","递","第","颠","典","点",
|
||||
"电","店","垫","殿","叼","雕","吊","钓","调","掉","爹","跌","叠","蝶","丁","叮","盯","钉","顶","订","定","丢","东","冬","董","懂","动","冻","栋","洞","都","斗","抖","陡","豆","逗","督","毒","读","独","堵",
|
||||
"赌","杜","肚","度","渡","端","短","段","断","缎","锻","堆","队","对","吨","蹲","盾","顿","多","夺","朵","躲","惰","鹅","蛾","额","恶","饿","恩","儿","而","耳","二","发","乏","伐","罚","阀","法","帆","番",
|
||||
"翻","凡","烦","繁","反","返","犯","泛","饭","范","贩","方","坊","芳","防","妨","房","仿","访","纺","放","飞","非","肥","匪","废","沸","肺","费","分","吩","纷","芬","坟","粉","份","奋","愤","粪","丰","风",
|
||||
"封","疯","峰","锋","蜂","逢","缝","讽","凤","奉","佛","否","夫","肤","伏","扶","服","俘","浮","符","幅","福","抚","府","斧","俯","辅","腐","父","付","妇","负","附","咐","复","赴","副","傅","富","腹","覆",
|
||||
"该","改","盖","溉","概","干","甘","杆","肝","竿","秆","赶","敢","感","冈","刚","岗","纲","缸","钢","港","杠","高","膏","糕","搞","稿","告","哥","胳","鸽","割","搁","歌","阁","革","格","葛","隔","个","各",
|
||||
"给","根","跟","更","耕","工","弓","公","功","攻","供","宫","恭","躬","巩","共","贡","勾","沟","钩","狗","构","购","够","估","姑","孤","辜","古","谷","股","骨","鼓","固","故","顾","瓜","刮","挂","乖","拐",
|
||||
"怪","关","观","官","冠","馆","管","贯","惯","灌","罐","光","广","归","龟","规","轨","鬼","柜","贵","桂","跪","滚","棍","锅","国","果","裹","过","哈","孩","海","害","含","寒","喊","汉","汗","旱","航","毫",
|
||||
"豪","好","号","浩","耗","喝","禾","合","何","和","河","核","荷","盒","贺","黑","痕","很","狠","恨","恒","横","衡","轰","哄","烘","红","宏","洪","虹","喉","猴","吼","后","厚","候","乎","呼","忽","狐","胡",
|
||||
"壶","湖","糊","蝴","虎","互","户","护","花","华","哗","滑","猾","化","划","画","话","怀","槐","坏","欢","还","环","缓","幻","唤","换","患","荒","慌","皇","黄","煌","晃","谎","灰","恢","挥","辉","回","悔",
|
||||
"汇","会","绘","贿","惠","毁","慧","昏","婚","浑","魂","混","活","火","伙","或","货","获","祸","惑","击","饥","圾","机","肌","鸡","迹","积","基","绩","激","及","吉","级","即","极","急","疾","集","籍","几",
|
||||
"己","挤","脊","计","记","纪","忌","技","际","剂","季","既","济","继","寄","加","夹","佳","家","嘉","甲","价","驾","架","假","嫁","稼","奸","尖","坚","歼","间","肩","艰","兼","监","煎","拣","俭","茧","捡",
|
||||
"减","剪","检","简","见","件","建","剑","荐","贱","健","舰","渐","践","鉴","键","箭","江","姜","将","浆","僵","疆","讲","奖","桨","匠","降","酱","交","郊","娇","浇","骄","胶","椒","焦","蕉","角","狡","绞",
|
||||
"饺","脚","搅","缴","叫","轿","较","教","阶","觉","掘","嚼","军","君","均","菌","俊","卡","开","皆","接","揭","街","节","劫","杰","洁","结","捷","截","竭","姐","解","介","戒","届","界","借","巾","今","斤",
|
||||
"金","津","筋","仅","紧","谨","锦","尽","劲","近","进","晋","浸","禁","京","经","茎","惊","晶","睛","精","井","颈","景","警","净","径","竞","竟","敬","境","静","镜","纠","究","揪","九","久","酒","旧","救",
|
||||
"就","舅","居","拘","鞠","局","菊","橘","举","矩","句","巨","拒","具","俱","剧","惧","据","距","锯","聚","捐","卷","倦","绢","决","绝","凯","慨","刊","堪","砍","看","康","糠","扛","抗","炕","考","烤","靠",
|
||||
"科","棵","颗","壳","咳","可","渴","克","刻","客","课","肯","垦","恳","坑","空","孔","恐","控","口","扣","寇","枯","哭","苦","库","裤","酷","夸","垮","挎","跨","块","快","宽","款","筐","狂","况","旷","矿",
|
||||
"框","亏","葵","愧","昆","捆","困","扩","括","阔","垃","拉","啦","喇","腊","蜡","辣","来","赖","兰","拦","栏","蓝","篮","览","懒","烂","滥","郎","狼","廊","朗","浪","捞","劳","牢","老","姥","涝","乐","勒",
|
||||
"雷","垒","泪","类","累","冷","厘","梨","狸","离","犁","鹂","璃","黎","礼","李","里","理","力","历","厉","立","丽","利","励","例","隶","栗","粒","俩","连","帘","怜","莲","联","廉","镰","脸","练","炼","恋",
|
||||
"链","良","凉","梁","粮","粱","两","亮","谅","辆","量","辽","疗","僚","了","料","列","劣","烈","猎","裂","邻","林","临","淋","伶","灵","岭","铃","陵","零","龄","领","令","另","溜","刘","流","留","榴","柳",
|
||||
"六","龙","笼","聋","隆","垄","拢","楼","搂","漏","露","芦","炉","虏","鲁","陆","录","鹿","滤","碌","路","驴","轮","论","罗","萝","锣","箩","骡","螺","络","骆","落","妈","麻","马","码","蚂","骂","吗","埋",
|
||||
"买","旅","屡","律","虑","率","绿","卵","乱","掠","略","迈","麦","卖","脉","蛮","馒","瞒","满","慢","漫","忙","芒","盲","茫","猫","毛","矛","茅","茂","冒","贸","帽","貌","么","没","眉","梅","煤","霉","每",
|
||||
"美","妹","门","闷","们","萌","盟","猛","蒙","孟","梦","迷","谜","米","眯","秘","密","蜜","眠","绵","棉","免","勉","面","苗","描","秒","妙","庙","灭","蔑","民","敏","名","明","鸣","命","摸","模","膜","摩",
|
||||
"磨","魔","抹","末","沫","莫","漠","墨","默","谋","某","母","亩","木","目","牧","墓","幕","慕","暮","拿","哪","内","那","纳","乃","奶","耐","男","南","难","囊","挠","恼","脑","闹","呢","嫩","能","尼","泥",
|
||||
"你","逆","年","念","娘","酿","鸟","尿","捏","您","宁","凝","牛","扭","纽","农","浓","弄","奴","努","怒","女","暖","挪","欧","偶","辟","趴","爬","怕","拍","牌","派","攀","盘","判","叛","盼","乓","旁","胖",
|
||||
"抛","炮","袍","跑","泡","陪","培","赔","佩","配","喷","盆","朋","棚","蓬","膨","捧","碰","批","披","劈","皮","疲","脾","匹","僻","片","偏","篇","骗","漂","飘","票","撇","拼","贫","品","乒","平","评","凭",
|
||||
"苹","瓶","萍","坡","泼","婆","迫","破","魄","剖","仆","扑","铺","葡","朴","普","谱","七","妻","戚","期","欺","漆","齐","其","奇","骑","棋","旗","乞","企","岂","启","起","气","弃","汽","砌","器","恰","洽",
|
||||
"千","迁","牵","铅","谦","签","前","钱","钳","潜","浅","遣","欠","歉","枪","腔","强","墙","抢","悄","敲","锹","乔","侨","桥","瞧","巧","切","茄","且","窃","亲","侵","芹","琴","禽","勤","青","轻","倾","清",
|
||||
"蜻","情","晴","顷","请","庆","穷","丘","秋","求","球","区","曲","驱","屈","趋","渠","取","去","趣","圈","全","权","泉","拳","犬","劝","券","缺","却","雀","确","鹊","裙","群","然","燃","染","嚷","壤","让",
|
||||
"饶","扰","绕","惹","热","人","仁","忍","刃","认","任","扔","仍","日","绒","荣","容","熔","融","柔","揉","肉","如","乳","辱","入","软","锐","瑞","润","若","弱","撒","洒","塞","赛","三","伞","散","桑","嗓",
|
||||
"丧","扫","嫂","色","森","杀","沙","纱","傻","筛","晒","山","删","衫","闪","陕","扇","善","伤","商","裳","晌","赏","上","尚","捎","梢","烧","稍","勺","少","绍","哨","舌","蛇","舍","设","社","射","涉","摄",
|
||||
"申","伸","身","深","神","沈","审","婶","肾","甚","渗","慎","升","生","声","牲","胜","绳","省","圣","盛","剩","尸","失","师","诗","施","狮","湿","十","什","石","时","识","实","拾","蚀","食","史","使","始",
|
||||
"驶","士","氏","世","市","示","式","事","侍","势","视","试","饰","室","是","柿","适","逝","释","誓","收","手","守","首","寿","受","兽","售","授","瘦","书","叔","殊","梳","疏","舒","输","蔬","熟","暑","鼠",
|
||||
"属","薯","术","束","述","树","竖","数","刷","耍","衰","摔","甩","帅","拴","双","霜","爽","谁","水","税","睡","顺","说","嗽","丝","司","私","思","斯","撕","死","四","寺","似","饲","肆","松","宋","诵","送",
|
||||
"颂","搜","艘","苏","俗","诉","肃","素","速","宿","塑","酸","蒜","算","虽","随","岁","碎","穗","孙","损","笋","缩","所","索","锁","她","他","它","塌","塔","踏","台","抬","太","态","泰","贪","摊","滩","坛",
|
||||
"谈","痰","坦","毯","叹","炭","探","汤","唐","堂","塘","膛","糖","倘","躺","烫","趟","涛","掏","滔","逃","桃","陶","淘","萄","讨","套","特","疼","腾","梯","踢","提","题","蹄","体","剃","惕","替","天","添",
|
||||
"田","甜","填","挑","条","跳","贴","铁","帖","厅","听","亭","庭","停","挺","艇","通","同","桐","铜","童","统","桶","筒","痛","偷","头","投","透","秃","突","图","徒","涂","途","屠","土","吐","兔","团","推",
|
||||
"腿","退","吞","屯","托","拖","脱","驼","妥","娃","挖","蛙","瓦","袜","歪","外","弯","湾","丸","完","玩","顽","挽","晚","碗","万","汪","亡","王","网","往","妄","忘","旺","望","危","威","微","为","围","违",
|
||||
"唯","维","伟","伪","尾","委","卫","未","位","味","畏","胃","喂","慰","温","文","纹","闻","蚊","稳","问","翁","窝","我","沃","卧","握","乌","污","呜","屋","无","吴","五","午","伍","武","侮","舞","勿","务",
|
||||
"物","误","悟","雾","夕","西","吸","希","析","息","牺","悉","惜","稀","溪","锡","熄","膝","习","席","袭","洗","喜","戏","系","细","隙","虾","瞎","峡","狭","霞","下","吓","夏","厦","仙","先","纤","掀","鲜",
|
||||
"闲","弦","贤","咸","衔","嫌","显","险","县","现","线","限","宪","陷","馅","羡","献","乡","相","香","箱","详","祥","享","响","想","向","巷","项","象","像","橡","些","歇","协","邪","胁","斜","携","鞋","写",
|
||||
"泄","泻","卸","屑","械","谢","心","辛","欣","新","薪","信","兴","星","腥","刑","行","形","型","醒","杏","姓","幸","性","凶","兄","胸","雄","熊","休","修","羞","朽","秀","绣","袖","锈","须","虚","需","徐",
|
||||
"许","序","叙","绪","续","絮","蓄","宣","悬","旋","选","穴","学","雪","血","寻","巡","旬","询","循","削","宵","消","销","小","晓","孝","效","校","笑","训","讯","迅","压","呀","押","鸦","鸭","牙","芽","崖",
|
||||
"哑","雅","亚","咽","烟","淹","延","严","言","岩","沿","炎","研","盐","蜒","颜","掩","眼","演","厌","宴","艳","验","焰","雁","燕","央","殃","秧","扬","羊","阳","杨","洋","仰","养","氧","痒","样","妖","腰",
|
||||
"邀","窑","谣","摇","遥","咬","药","要","钥","悦","阅","跃","越","云","匀","允","孕","运","耀","爷","也","冶","野","业","叶","页","夜","液","一","衣","医","依","仪","宜","姨","移","遗","疑","乙","已","以",
|
||||
"蚁","倚","椅","义","亿","忆","艺","议","亦","异","役","译","易","疫","益","谊","意","毅","翼","因","阴","姻","音","银","引","饮","隐","印","应","英","樱","鹰","迎","盈","营","蝇","赢","影","映","硬","佣",
|
||||
"拥","庸","永","咏","泳","勇","涌","用","优","忧","悠","尤","由","犹","邮","油","游","友","有","又","右","幼","诱","于","予","余","鱼","娱","渔","愉","愚","榆","与","宇","屿","羽","雨","语","玉","育","郁",
|
||||
"狱","浴","预","域","欲","御","裕","遇","愈","誉","冤","元","员","园","原","圆","援","缘","源","远","怨","院","愿","约","月","晕","韵","杂","灾","栽","宰","载","再","在","咱","暂","赞","脏","葬","遭","糟",
|
||||
"早","枣","澡","灶","皂","造","燥","躁","则","择","泽","责","贼","怎","增","赠","渣","扎","轧","闸","眨","炸","榨","摘","宅","窄","债","寨","沾","粘","斩","展","盏","崭","占","战","站","张","章","涨","掌",
|
||||
"丈","仗","帐","胀","障","招","找","召","兆","赵","照","罩","遮","爪","专","砖","转","赚","庄","装","壮","状","撞","折","哲","者","这","浙","贞","针","侦","珍","真","诊","枕","阵","振","镇","震","争","征",
|
||||
"挣","睁","筝","蒸","整","正","证","郑","政","症","之","支","汁","芝","枝","知","织","肢","脂","蜘","执","侄","直","值","职","植","殖","止","只","旨","址","纸","指","至","志","制","帜","治","质","秩","致",
|
||||
"智","置","中","忠","终","钟","肿","种","众","重","州","舟","周","洲","粥","宙","昼","皱","骤","朱","株","珠","诸","猪","蛛","竹","烛","逐","主","煮","嘱","住","助","注","驻","柱","祝","著","筑","铸","抓",
|
||||
"追","准","捉","桌","浊","啄","着","仔","姿","资","滋","子","紫","字","自","宗","棕","踪","总","纵","走","奏","租","足","族","阻","组","祖","钻","嘴","最","罪","醉","尊","遵","昨","左","作","坐","座","阿",
|
||||
"啊","哀","唉","挨","矮","爱","碍","安","岸","按","案","暗","昂","袄","傲","奥","八","巴","扒","吧","疤","拔","把","坝","爸","罢","霸","白","百","柏","摆","败","拜","班","般","斑","搬","板","版","办","半",
|
||||
"伴","扮","拌","瓣","帮","绑","榜","膀","傍","棒","包","胞","雹","宝","饱","保","堡","报","抱","暴","爆","杯","悲","碑","北","贝","备","背","倍","被","辈","奔","本","笨","蹦","逼","鼻","比","彼","笔","鄙",
|
||||
"币","必","毕","闭","毙","弊","碧","蔽","壁","避","臂","边","编","鞭","扁","便","变","遍","辨","辩","辫","标","表","别","宾","滨","冰","兵","丙","柄","饼","并","病","拨","波","玻","剥","脖","菠","播","伯",
|
||||
"驳","泊","博","搏","膊","薄","卜","补","捕","不","布","步","怖","部","擦","猜","才","材","财","裁","采","彩","睬","踩","菜","参","餐","残","蚕","惭","惨","灿","仓","苍","舱","藏","操","槽","草","册","侧",
|
||||
"厕","测","策","层","叉","插","查","茶","察","岔","差","拆","柴","馋","缠","产","铲","颤","昌","长","肠","尝","偿","常","厂","场","敞","畅","倡","唱","抄","钞","超","朝","潮","吵","炒","车","扯","彻","撤",
|
||||
"尘","臣","沉","辰","陈","晨","闯","衬","称","趁","撑","成","呈","承","诚","城","乘","惩","程","秤","吃","驰","迟","持","虫","崇","抽","仇","绸","愁","稠","筹","酬","丑","臭","出","初","除","厨","锄","础",
|
||||
"储","楚","处","触","畜","川","穿","传","船","喘","串","疮","窗","床","创","吹","炊","垂","锤","春","纯","唇","蠢","词","慈","辞","磁","此","次","刺","从","匆","葱","聪","丛","凑","粗","促","醋","窜","催",
|
||||
"摧","脆","翠","村","存","寸","错","曾","搭","达","答","打","大","呆","代","带","待","怠","贷","袋","逮","戴","丹","单","担","耽","胆","旦","但","诞","弹","淡","蛋","当","挡","党","荡","档","刀","叨","导",
|
||||
"岛","倒","蹈","到","悼","盗","道","稻","得","德","的","灯","登","等","凳","低","堤","滴","敌","笛","底","抵","地","弟","帝","递","第","颠","典","点","电","店","垫","殿","叼","雕","吊","钓","调","掉","爹",
|
||||
"跌","叠","蝶","丁","叮","盯","钉","顶","订","定","丢","东","冬","董","懂","动","冻","栋","洞","都","斗","抖","陡","豆","逗","督","毒","读","独","堵","赌","杜","肚","度","渡","端","短","段","断","缎","锻",
|
||||
"堆","队","对","吨","蹲","盾","顿","多","夺","朵","躲","惰","鹅","蛾","额","恶","饿","恩","儿","而","耳","二","发","乏","伐","罚","阀","法","帆","番","翻","凡","烦","繁","反","返","犯","泛","饭","范","贩",
|
||||
"方","坊","芳","防","妨","房","仿","访","纺","放","飞","非","肥","匪","废","沸","肺","费","分","吩","纷","芬","坟","粉","份","奋","愤","粪","丰","风","封","疯","峰","锋","蜂","逢","缝","讽","凤","奉","佛",
|
||||
"否","夫","肤","伏","扶","服","俘","浮","符","幅","福","抚","府","斧","俯","辅","腐","父","付","妇","负","附","咐","复","赴","副","傅","富","腹","覆","该","改","盖","溉","概","干","甘","杆","肝","竿","秆",
|
||||
"赶","敢","感","冈","刚","岗","纲","缸","钢","港","杠","高","膏","糕","搞","稿","告","哥","胳","鸽","割","搁","歌","阁","革","格","葛","隔","个","各","给","根","跟","更","耕","工","弓","公","功","攻","供",
|
||||
"宫","恭","躬","巩","共","贡","勾","沟","钩","狗","构","购","够","估","姑","孤","辜","古","谷","股","骨","鼓","固","故","顾","瓜","刮","挂","乖","拐","怪","关","观","官","冠","馆","管","贯","惯","灌","罐",
|
||||
"光","广","归","龟","规","轨","鬼","柜","贵","桂","跪","滚","棍","锅","国","果","裹","过","哈","孩","海","害","含","寒","喊","汉","汗","旱","航","毫","豪","好","号","浩","耗","喝","禾","合","何","和","河",
|
||||
"核","荷","盒","贺","黑","痕","很","狠","恨","恒","横","衡","轰","哄","烘","红","宏","洪","虹","喉","猴","吼","后","厚","候","乎","呼","忽","狐","胡","壶","湖","糊","蝴","虎","互","户","护","花","华","哗",
|
||||
"滑","猾","化","划","画","话","怀","槐","坏","欢","还","环","缓","幻","唤","换","患","荒","慌","皇","黄","煌","晃","谎","灰","恢","挥","辉","回","悔","汇","会","绘","贿","惠","毁","慧","昏","婚","浑","魂",
|
||||
"混","活","火","伙","或","货","获","祸","惑","击","饥","圾","机","肌","鸡","迹","积","基","绩","激","及","吉","级","即","极","急","疾","集","籍","几","己","挤","脊","计","记","纪","忌","技","际","剂","季",
|
||||
"既","济","继","寄","加","夹","佳","家","嘉","甲","价","驾","架","假","嫁","稼","奸","尖","坚","歼","间","肩","艰","兼","监","煎","拣","俭","茧","捡","减","剪","检","简","见","件","建","剑","荐","贱","健",
|
||||
"舰","渐","践","鉴","键","箭","江","姜","将","浆","僵","疆","讲","奖","桨","匠","降","酱","交","郊","娇","浇","骄","胶","椒","焦","蕉","角","狡","绞","饺","脚","搅","缴","叫","轿","较","教","阶","皆","接",
|
||||
"揭","街","节","劫","杰","洁","结","捷","截","竭","姐","解","介","戒","届","界","借","巾","今","斤","金","津","筋","仅","紧","谨","锦","尽","劲","近","进","晋","浸","禁","京","经","茎","惊","晶","睛","精",
|
||||
"井","颈","景","警","净","径","竞","竟","敬","境","静","镜","纠","究","揪","九","久","酒","旧","救","就","舅","居","拘","鞠","局","菊","橘","举","矩","句","巨","拒","具","俱","剧","惧","据","距","锯","聚",
|
||||
"捐","卷","倦","绢","决","绝","觉","掘","嚼","军","君","均","菌","俊","卡","开","凯","慨","刊","堪","砍","看","康","糠","扛","抗","炕","考","烤","靠","科","棵","颗","壳","咳","可","渴","克","刻","客","课",
|
||||
"肯","垦","恳","坑","空","孔","恐","控","口","扣","寇","枯","哭","苦","库","裤","酷","夸","垮","挎","跨","块","快","宽","款","筐","狂","况","旷","矿","框","亏","葵","愧","昆","捆","困","扩","括","阔","垃",
|
||||
"拉","啦","喇","腊","蜡","辣","来","赖","兰","拦","栏","蓝","篮","览","懒","烂","滥","郎","狼","廊","朗","浪","捞","劳","牢","老","姥","涝","乐","勒","雷","垒","泪","类","僚","了","料","列","劣","烈","猎",
|
||||
"裂","邻","林","累","冷","厘","梨","狸","离","犁","鹂","璃","黎","礼","李","里","理","力","历","厉","立","丽","利","励","例","隶","栗","粒","俩","连","帘","怜","莲","联","廉","镰","脸","练","炼","恋","链",
|
||||
"良","凉","梁","粮","粱","两","亮","谅","辆","量","辽","疗","临","淋","伶","灵","岭","铃","陵","零","龄","领","令","另","溜","刘","流","留","榴","柳","六","龙","笼","聋","隆","垄","拢","楼","搂","漏","露",
|
||||
"芦","炉","虏","鲁","陆","录","鹿","滤","碌","路","驴","轮","论","罗","萝","锣","箩","骡","螺","络","骆","旅","屡","律","虑","率","绿","卵","乱","掠","略","落","妈","麻","马","码","蚂","骂","吗","埋","买",
|
||||
"迈","麦","卖","脉","蛮","馒","瞒","满","慢","漫","忙","芒","盲","茫","猫","毛","矛","茅","茂","冒","贸","帽","貌","么","没","眉","梅","煤","霉","每","美","妹","门","闷","们","萌","盟","猛","蒙","孟","梦",
|
||||
"迷","谜","米","眯","秘","密","蜜","眠","绵","棉","免","勉","面","苗","描","秒","妙","庙","灭","蔑","民","敏","名","明","鸣","命","摸","模","膜","摩","磨","魔","抹","末","沫","莫","漠","墨","默","谋","某",
|
||||
"母","亩","木","目","牧","墓","幕","慕","暮","拿","哪","内","那","纳","乃","奶","耐","男","南","难","囊","挠","恼","脑","闹","呢","嫩","能","尼","泥","你","逆","年","念","娘","酿","鸟","尿","捏","您","宁",
|
||||
"凝","牛","扭","纽","农","浓","弄","奴","努","怒","女","暖","挪","欧","偶","辟","趴","爬","怕","拍","牌","派","攀","盘","判","叛","盼","乓","旁","胖","抛","炮","袍","跑","泡","陪","培","赔","佩","配","喷",
|
||||
"盆","朋","棚","蓬","膨","捧","碰","批","披","劈","皮","疲","脾","匹","僻","片","偏","篇","骗","漂","飘","票","撇","拼","贫","品","乒","平","评","凭","苹","瓶","萍","坡","泼","婆","迫","破","魄","剖","仆",
|
||||
"扑","铺","葡","朴","普","谱","七","妻","戚","期","欺","漆","齐","其","奇","骑","棋","旗","乞","企","岂","启","起","气","弃","汽","砌","器","恰","洽","千","迁","牵","铅","谦","签","前","钱","钳","潜","浅",
|
||||
"遣","欠","歉","枪","腔","强","墙","抢","悄","敲","锹","乔","侨","桥","瞧","巧","切","茄","且","窃","亲","侵","芹","琴","禽","勤","青","轻","倾","清","蜻","情","晴","顷","请","庆","穷","丘","秋","求","球",
|
||||
"区","曲","驱","屈","趋","渠","取","去","趣","圈","全","权","泉","拳","犬","劝","券","缺","却","雀","确","鹊","裙","群","然","燃","染","嚷","壤","让","饶","扰","绕","惹","热","人","仁","忍","刃","认","任",
|
||||
"扔","仍","日","绒","荣","容","熔","融","柔","揉","肉","如","乳","辱","入","软","锐","瑞","润","若","弱","撒","洒","塞","赛","三","伞","散","桑","嗓","丧","扫","嫂","色","森","杀","沙","纱","傻","筛","晒",
|
||||
"山","删","衫","闪","陕","扇","善","伤","商","裳","晌","赏","上","尚","捎","梢","烧","稍","勺","少","绍","哨","舌","蛇","舍","设","社","射","涉","摄","申","伸","身","深","神","沈","审","婶","肾","甚","渗",
|
||||
"慎","升","生","声","牲","胜","绳","省","圣","盛","剩","尸","失","师","诗","施","狮","湿","十","什","石","时","识","实","拾","蚀","食","史","使","始","驶","士","氏","世","市","示","式","事","侍","势","视",
|
||||
"试","饰","室","是","柿","适","逝","释","誓","池","匙","尺","齿","耻","斥","赤","翅","充","冲","收","手","守","首","寿","受","兽","售","授","瘦","书","叔","殊","梳","疏","舒","输","蔬","熟","暑","鼠","属",
|
||||
"薯","术","束","述","树","竖","数","刷","耍","衰","摔","甩","帅","拴","双","霜","爽","谁","水","税","睡","顺","说","嗽","丝","司","私","思","斯","撕","死","四","寺","似","饲","肆","松","宋","诵","送","颂",
|
||||
"搜","艘","苏","俗","诉","肃","素","穗","孙","损","笋","缩","所","索","锁","她","他","它","塌","塔","踏","台","抬","太","态","泰","贪","摊","滩","坛","谈","痰","坦","毯","叹","炭","探","汤","唐","堂","塘",
|
||||
"膛","糖","倘","躺","烫","趟","涛","掏","滔","逃","桃","陶","淘","萄","讨","套","特","疼","腾","梯","踢","提","题","蹄","体","剃","惕","替","天","添","田","甜","填","挑","条","跳","贴","铁","帖","厅","听",
|
||||
"亭","庭","停","挺","艇","通","同","桐","铜","童","统","桶","筒","痛","偷","头","投","透","秃","突","图","徒","涂","途","屠","土","吐","兔","团","推","腿","退","吞","屯","托","拖","脱","驼","妥","娃","挖",
|
||||
"蛙","瓦","袜","歪","外","弯","湾","丸","完","玩","顽","挽","晚","碗","万","汪","亡","王","网","往","妄","忘","旺","望","危","威","微","为","围","违","唯","维","伟","伪","尾","委","卫","未","位","味","畏",
|
||||
"胃","喂","慰","温","文","纹","闻","蚊","稳","问","翁","窝","我","沃","卧","握","乌","污","呜","屋","无","吴","五","午","伍","武","侮","舞","勿","务","物","误","悟","雾","夕","西","吸","希","析","息","牺",
|
||||
"悉","惜","稀","溪","锡","熄","膝","习","席","袭","洗","喜","戏","系","细","隙","虾","瞎","峡","狭","霞","下","吓","夏","厦","仙","先","纤","掀","鲜","闲","弦","贤","咸","衔","嫌","显","险","县","现","线",
|
||||
"限","宪","陷","馅","羡","献","乡","相","香","箱","详","祥","享","响","想","向","巷","项","象","像","橡","削","宵","消","销","小","晓","孝","效","校","笑","些","歇","协","邪","胁","斜","携","鞋","写","泄",
|
||||
"泻","卸","屑","械","谢","心","辛","欣","新","薪","信","兴","星","腥","刑","行","形","型","醒","杏","姓","幸","性","凶","兄","胸","雄","熊","休","修","羞","朽","秀","绣","袖","锈","须","虚","需","徐","速",
|
||||
"宿","塑","酸","蒜","算","虽","随","岁","碎","许","序","叙","绪","续","絮","蓄","宣","悬","旋","选","穴","学","雪","血","寻","巡","旬","询","循","训","讯","迅","压","呀","押","鸦","鸭","牙","芽","崖","哑",
|
||||
"雅","亚","咽","烟","淹","延","严","言","岩","沿","炎","研","盐","蜒","颜","掩","眼","演","厌","宴","艳","验","焰","雁","燕","央","殃","秧","扬","羊","阳","杨","洋","仰","养","氧","痒","样","妖","腰","邀",
|
||||
"窑","谣","摇","遥","咬","药","要","耀","爷","也","冶","野","业","叶","页","夜","液","一","衣","医","依","仪","宜","姨","移","遗","疑","乙","已","以","蚁","倚","椅","义","亿","忆","艺","议","亦","异","役",
|
||||
"译","易","疫","益","谊","意","毅","翼","因","阴","姻","音","银","引","饮","隐","印","应","英","樱","鹰","迎","盈","营","蝇","赢","影","映","硬","佣","拥","庸","永","咏","泳","勇","涌","用","优","忧","悠",
|
||||
"尤","由","犹","邮","油","游","友","有","又","右","幼","诱","于","予","余","鱼","娱","渔","愉","愚","榆","与","宇","屿","羽","雨","语","玉","育","郁","狱","浴","预","域","欲","御","裕","遇","愈","誉","冤",
|
||||
"元","员","园","原","圆","援","缘","源","远","怨","院","愿","约","月","钥","悦","阅","跃","越","云","匀","允","孕","运","晕","韵","杂","灾","栽","宰","载","再","在","咱","暂","赞","脏","葬","遭","糟","早",
|
||||
"枣","澡","灶","皂","造","燥","躁","则","择","泽","责","贼","怎","增","赠","渣","扎","轧","闸","眨","炸","榨","摘","宅","窄","债","寨","沾","粘","斩","展","盏","崭","占","战","站","张","章","涨","掌","丈",
|
||||
"仗","帐","胀","障","招","找","召","兆","赵","照","罩","遮","折","哲","者","这","浙","贞","针","侦","珍","真","诊","枕","阵","振","镇","震","争","征","挣","睁","筝","蒸","整","正","证","郑","政","症","之",
|
||||
"支","汁","芝","枝","知","织","肢","脂","蜘","执","侄","直","值","职","植","殖","止","只","旨","址","纸","指","至","志","制","帜","治","质","秩","致","智","置","中","忠","终","钟","肿","种","众","重","州",
|
||||
"舟","周","洲","粥","宙","昼","皱","骤","朱","株","珠","诸","猪","蛛","竹","烛","逐","主","煮","嘱","住","助","注","驻","柱","祝","著","筑","铸","抓","爪","专","砖","转","赚","庄","装","壮","状","撞","追",
|
||||
"准","捉","桌","浊","啄","着","仔","姿","资","滋","子","紫","字","自","宗","棕","踪","总","纵","走","奏","租","足","族","阻","组","祖","钻","嘴","最","罪","醉","尊","遵","昨","左","作","坐","座"};
|
||||
char hanzibuf[5000][8] = {"阿","啊","哀","唉","挨","矮","爱","碍","安","岸","按","案","暗","昂","袄","傲","奥","八","巴","扒","吧","疤","拔","把","坝","爸","罢","霸","白","百","柏","摆","败","拜","班","般","斑","搬","板","版","办",
|
||||
"半","伴","扮","拌","瓣","帮","绑","榜","膀","傍","棒","包","胞","雹","宝","饱","保","堡","报","抱","暴","爆","杯","悲","碑","北","贝","备","背","倍","被","辈","奔","本","笨","蹦","逼","鼻","比","彼","笔",
|
||||
"鄙","币","必","毕","闭","毙","弊","碧","蔽","壁","避","臂","边","编","鞭","扁","便","变","遍","辨","辩","辫","标","表","别","宾","滨","冰","兵","丙","柄","饼","并","病","拨","波","玻","剥","脖","菠","播",
|
||||
"伯","驳","泊","博","搏","膊","薄","卜","补","捕","不","布","步","怖","部","擦","猜","才","材","财","裁","采","彩","睬","踩","菜","参","餐","残","蚕","惭","惨","灿","仓","苍","舱","藏","操","槽","草","册",
|
||||
"侧","厕","测","策","层","叉","插","查","茶","察","岔","差","拆","柴","馋","缠","产","铲","颤","昌","长","肠","尝","偿","常","厂","场","敞","畅","倡","唱","抄","钞","超","朝","潮","吵","炒","车","扯","彻",
|
||||
"撤","尘","臣","沉","辰","陈","晨","闯","衬","称","趁","撑","成","呈","承","诚","城","乘","惩","程","秤","吃","驰","迟","持","池","匙","尺","齿","耻","斥","赤","翅","充","冲","虫","崇","抽","仇","绸","愁",
|
||||
"稠","筹","酬","丑","臭","出","初","除","厨","锄","础","储","楚","处","触","畜","川","穿","传","船","喘","串","疮","窗","床","创","吹","炊","垂","锤","春","纯","唇","蠢","词","慈","辞","磁","此","次","刺",
|
||||
"从","匆","葱","聪","丛","凑","粗","促","醋","窜","催","摧","脆","翠","村","存","寸","错","曾","搭","达","答","打","大","呆","代","带","待","怠","贷","袋","逮","戴","丹","单","担","耽","胆","旦","但","诞",
|
||||
"弹","淡","蛋","当","挡","党","荡","档","刀","叨","导","岛","倒","蹈","到","悼","盗","道","稻","得","德","的","灯","登","等","凳","低","堤","滴","敌","笛","底","抵","地","弟","帝","递","第","颠","典","点",
|
||||
"电","店","垫","殿","叼","雕","吊","钓","调","掉","爹","跌","叠","蝶","丁","叮","盯","钉","顶","订","定","丢","东","冬","董","懂","动","冻","栋","洞","都","斗","抖","陡","豆","逗","督","毒","读","独","堵",
|
||||
"赌","杜","肚","度","渡","端","短","段","断","缎","锻","堆","队","对","吨","蹲","盾","顿","多","夺","朵","躲","惰","鹅","蛾","额","恶","饿","恩","儿","而","耳","二","发","乏","伐","罚","阀","法","帆","番",
|
||||
"翻","凡","烦","繁","反","返","犯","泛","饭","范","贩","方","坊","芳","防","妨","房","仿","访","纺","放","飞","非","肥","匪","废","沸","肺","费","分","吩","纷","芬","坟","粉","份","奋","愤","粪","丰","风",
|
||||
"封","疯","峰","锋","蜂","逢","缝","讽","凤","奉","佛","否","夫","肤","伏","扶","服","俘","浮","符","幅","福","抚","府","斧","俯","辅","腐","父","付","妇","负","附","咐","复","赴","副","傅","富","腹","覆",
|
||||
"该","改","盖","溉","概","干","甘","杆","肝","竿","秆","赶","敢","感","冈","刚","岗","纲","缸","钢","港","杠","高","膏","糕","搞","稿","告","哥","胳","鸽","割","搁","歌","阁","革","格","葛","隔","个","各",
|
||||
"给","根","跟","更","耕","工","弓","公","功","攻","供","宫","恭","躬","巩","共","贡","勾","沟","钩","狗","构","购","够","估","姑","孤","辜","古","谷","股","骨","鼓","固","故","顾","瓜","刮","挂","乖","拐",
|
||||
"怪","关","观","官","冠","馆","管","贯","惯","灌","罐","光","广","归","龟","规","轨","鬼","柜","贵","桂","跪","滚","棍","锅","国","果","裹","过","哈","孩","海","害","含","寒","喊","汉","汗","旱","航","毫",
|
||||
"豪","好","号","浩","耗","喝","禾","合","何","和","河","核","荷","盒","贺","黑","痕","很","狠","恨","恒","横","衡","轰","哄","烘","红","宏","洪","虹","喉","猴","吼","后","厚","候","乎","呼","忽","狐","胡",
|
||||
"壶","湖","糊","蝴","虎","互","户","护","花","华","哗","滑","猾","化","划","画","话","怀","槐","坏","欢","还","环","缓","幻","唤","换","患","荒","慌","皇","黄","煌","晃","谎","灰","恢","挥","辉","回","悔",
|
||||
"汇","会","绘","贿","惠","毁","慧","昏","婚","浑","魂","混","活","火","伙","或","货","获","祸","惑","击","饥","圾","机","肌","鸡","迹","积","基","绩","激","及","吉","级","即","极","急","疾","集","籍","几",
|
||||
"己","挤","脊","计","记","纪","忌","技","际","剂","季","既","济","继","寄","加","夹","佳","家","嘉","甲","价","驾","架","假","嫁","稼","奸","尖","坚","歼","间","肩","艰","兼","监","煎","拣","俭","茧","捡",
|
||||
"减","剪","检","简","见","件","建","剑","荐","贱","健","舰","渐","践","鉴","键","箭","江","姜","将","浆","僵","疆","讲","奖","桨","匠","降","酱","交","郊","娇","浇","骄","胶","椒","焦","蕉","角","狡","绞",
|
||||
"饺","脚","搅","缴","叫","轿","较","教","阶","觉","掘","嚼","军","君","均","菌","俊","卡","开","皆","接","揭","街","节","劫","杰","洁","结","捷","截","竭","姐","解","介","戒","届","界","借","巾","今","斤",
|
||||
"金","津","筋","仅","紧","谨","锦","尽","劲","近","进","晋","浸","禁","京","经","茎","惊","晶","睛","精","井","颈","景","警","净","径","竞","竟","敬","境","静","镜","纠","究","揪","九","久","酒","旧","救",
|
||||
"就","舅","居","拘","鞠","局","菊","橘","举","矩","句","巨","拒","具","俱","剧","惧","据","距","锯","聚","捐","卷","倦","绢","决","绝","凯","慨","刊","堪","砍","看","康","糠","扛","抗","炕","考","烤","靠",
|
||||
"科","棵","颗","壳","咳","可","渴","克","刻","客","课","肯","垦","恳","坑","空","孔","恐","控","口","扣","寇","枯","哭","苦","库","裤","酷","夸","垮","挎","跨","块","快","宽","款","筐","狂","况","旷","矿",
|
||||
"框","亏","葵","愧","昆","捆","困","扩","括","阔","垃","拉","啦","喇","腊","蜡","辣","来","赖","兰","拦","栏","蓝","篮","览","懒","烂","滥","郎","狼","廊","朗","浪","捞","劳","牢","老","姥","涝","乐","勒",
|
||||
"雷","垒","泪","类","累","冷","厘","梨","狸","离","犁","鹂","璃","黎","礼","李","里","理","力","历","厉","立","丽","利","励","例","隶","栗","粒","俩","连","帘","怜","莲","联","廉","镰","脸","练","炼","恋",
|
||||
"链","良","凉","梁","粮","粱","两","亮","谅","辆","量","辽","疗","僚","了","料","列","劣","烈","猎","裂","邻","林","临","淋","伶","灵","岭","铃","陵","零","龄","领","令","另","溜","刘","流","留","榴","柳",
|
||||
"六","龙","笼","聋","隆","垄","拢","楼","搂","漏","露","芦","炉","虏","鲁","陆","录","鹿","滤","碌","路","驴","轮","论","罗","萝","锣","箩","骡","螺","络","骆","落","妈","麻","马","码","蚂","骂","吗","埋",
|
||||
"买","旅","屡","律","虑","率","绿","卵","乱","掠","略","迈","麦","卖","脉","蛮","馒","瞒","满","慢","漫","忙","芒","盲","茫","猫","毛","矛","茅","茂","冒","贸","帽","貌","么","没","眉","梅","煤","霉","每",
|
||||
"美","妹","门","闷","们","萌","盟","猛","蒙","孟","梦","迷","谜","米","眯","秘","密","蜜","眠","绵","棉","免","勉","面","苗","描","秒","妙","庙","灭","蔑","民","敏","名","明","鸣","命","摸","模","膜","摩",
|
||||
"磨","魔","抹","末","沫","莫","漠","墨","默","谋","某","母","亩","木","目","牧","墓","幕","慕","暮","拿","哪","内","那","纳","乃","奶","耐","男","南","难","囊","挠","恼","脑","闹","呢","嫩","能","尼","泥",
|
||||
"你","逆","年","念","娘","酿","鸟","尿","捏","您","宁","凝","牛","扭","纽","农","浓","弄","奴","努","怒","女","暖","挪","欧","偶","辟","趴","爬","怕","拍","牌","派","攀","盘","判","叛","盼","乓","旁","胖",
|
||||
"抛","炮","袍","跑","泡","陪","培","赔","佩","配","喷","盆","朋","棚","蓬","膨","捧","碰","批","披","劈","皮","疲","脾","匹","僻","片","偏","篇","骗","漂","飘","票","撇","拼","贫","品","乒","平","评","凭",
|
||||
"苹","瓶","萍","坡","泼","婆","迫","破","魄","剖","仆","扑","铺","葡","朴","普","谱","七","妻","戚","期","欺","漆","齐","其","奇","骑","棋","旗","乞","企","岂","启","起","气","弃","汽","砌","器","恰","洽",
|
||||
"千","迁","牵","铅","谦","签","前","钱","钳","潜","浅","遣","欠","歉","枪","腔","强","墙","抢","悄","敲","锹","乔","侨","桥","瞧","巧","切","茄","且","窃","亲","侵","芹","琴","禽","勤","青","轻","倾","清",
|
||||
"蜻","情","晴","顷","请","庆","穷","丘","秋","求","球","区","曲","驱","屈","趋","渠","取","去","趣","圈","全","权","泉","拳","犬","劝","券","缺","却","雀","确","鹊","裙","群","然","燃","染","嚷","壤","让",
|
||||
"饶","扰","绕","惹","热","人","仁","忍","刃","认","任","扔","仍","日","绒","荣","容","熔","融","柔","揉","肉","如","乳","辱","入","软","锐","瑞","润","若","弱","撒","洒","塞","赛","三","伞","散","桑","嗓",
|
||||
"丧","扫","嫂","色","森","杀","沙","纱","傻","筛","晒","山","删","衫","闪","陕","扇","善","伤","商","裳","晌","赏","上","尚","捎","梢","烧","稍","勺","少","绍","哨","舌","蛇","舍","设","社","射","涉","摄",
|
||||
"申","伸","身","深","神","沈","审","婶","肾","甚","渗","慎","升","生","声","牲","胜","绳","省","圣","盛","剩","尸","失","师","诗","施","狮","湿","十","什","石","时","识","实","拾","蚀","食","史","使","始",
|
||||
"驶","士","氏","世","市","示","式","事","侍","势","视","试","饰","室","是","柿","适","逝","释","誓","收","手","守","首","寿","受","兽","售","授","瘦","书","叔","殊","梳","疏","舒","输","蔬","熟","暑","鼠",
|
||||
"属","薯","术","束","述","树","竖","数","刷","耍","衰","摔","甩","帅","拴","双","霜","爽","谁","水","税","睡","顺","说","嗽","丝","司","私","思","斯","撕","死","四","寺","似","饲","肆","松","宋","诵","送",
|
||||
"颂","搜","艘","苏","俗","诉","肃","素","速","宿","塑","酸","蒜","算","虽","随","岁","碎","穗","孙","损","笋","缩","所","索","锁","她","他","它","塌","塔","踏","台","抬","太","态","泰","贪","摊","滩","坛",
|
||||
"谈","痰","坦","毯","叹","炭","探","汤","唐","堂","塘","膛","糖","倘","躺","烫","趟","涛","掏","滔","逃","桃","陶","淘","萄","讨","套","特","疼","腾","梯","踢","提","题","蹄","体","剃","惕","替","天","添",
|
||||
"田","甜","填","挑","条","跳","贴","铁","帖","厅","听","亭","庭","停","挺","艇","通","同","桐","铜","童","统","桶","筒","痛","偷","头","投","透","秃","突","图","徒","涂","途","屠","土","吐","兔","团","推",
|
||||
"腿","退","吞","屯","托","拖","脱","驼","妥","娃","挖","蛙","瓦","袜","歪","外","弯","湾","丸","完","玩","顽","挽","晚","碗","万","汪","亡","王","网","往","妄","忘","旺","望","危","威","微","为","围","违",
|
||||
"唯","维","伟","伪","尾","委","卫","未","位","味","畏","胃","喂","慰","温","文","纹","闻","蚊","稳","问","翁","窝","我","沃","卧","握","乌","污","呜","屋","无","吴","五","午","伍","武","侮","舞","勿","务",
|
||||
"物","误","悟","雾","夕","西","吸","希","析","息","牺","悉","惜","稀","溪","锡","熄","膝","习","席","袭","洗","喜","戏","系","细","隙","虾","瞎","峡","狭","霞","下","吓","夏","厦","仙","先","纤","掀","鲜",
|
||||
"闲","弦","贤","咸","衔","嫌","显","险","县","现","线","限","宪","陷","馅","羡","献","乡","相","香","箱","详","祥","享","响","想","向","巷","项","象","像","橡","些","歇","协","邪","胁","斜","携","鞋","写",
|
||||
"泄","泻","卸","屑","械","谢","心","辛","欣","新","薪","信","兴","星","腥","刑","行","形","型","醒","杏","姓","幸","性","凶","兄","胸","雄","熊","休","修","羞","朽","秀","绣","袖","锈","须","虚","需","徐",
|
||||
"许","序","叙","绪","续","絮","蓄","宣","悬","旋","选","穴","学","雪","血","寻","巡","旬","询","循","削","宵","消","销","小","晓","孝","效","校","笑","训","讯","迅","压","呀","押","鸦","鸭","牙","芽","崖",
|
||||
"哑","雅","亚","咽","烟","淹","延","严","言","岩","沿","炎","研","盐","蜒","颜","掩","眼","演","厌","宴","艳","验","焰","雁","燕","央","殃","秧","扬","羊","阳","杨","洋","仰","养","氧","痒","样","妖","腰",
|
||||
"邀","窑","谣","摇","遥","咬","药","要","钥","悦","阅","跃","越","云","匀","允","孕","运","耀","爷","也","冶","野","业","叶","页","夜","液","一","衣","医","依","仪","宜","姨","移","遗","疑","乙","已","以",
|
||||
"蚁","倚","椅","义","亿","忆","艺","议","亦","异","役","译","易","疫","益","谊","意","毅","翼","因","阴","姻","音","银","引","饮","隐","印","应","英","樱","鹰","迎","盈","营","蝇","赢","影","映","硬","佣",
|
||||
"拥","庸","永","咏","泳","勇","涌","用","优","忧","悠","尤","由","犹","邮","油","游","友","有","又","右","幼","诱","于","予","余","鱼","娱","渔","愉","愚","榆","与","宇","屿","羽","雨","语","玉","育","郁",
|
||||
"狱","浴","预","域","欲","御","裕","遇","愈","誉","冤","元","员","园","原","圆","援","缘","源","远","怨","院","愿","约","月","晕","韵","杂","灾","栽","宰","载","再","在","咱","暂","赞","脏","葬","遭","糟",
|
||||
"早","枣","澡","灶","皂","造","燥","躁","则","择","泽","责","贼","怎","增","赠","渣","扎","轧","闸","眨","炸","榨","摘","宅","窄","债","寨","沾","粘","斩","展","盏","崭","占","战","站","张","章","涨","掌",
|
||||
"丈","仗","帐","胀","障","招","找","召","兆","赵","照","罩","遮","爪","专","砖","转","赚","庄","装","壮","状","撞","折","哲","者","这","浙","贞","针","侦","珍","真","诊","枕","阵","振","镇","震","争","征",
|
||||
"挣","睁","筝","蒸","整","正","证","郑","政","症","之","支","汁","芝","枝","知","织","肢","脂","蜘","执","侄","直","值","职","植","殖","止","只","旨","址","纸","指","至","志","制","帜","治","质","秩","致",
|
||||
"智","置","中","忠","终","钟","肿","种","众","重","州","舟","周","洲","粥","宙","昼","皱","骤","朱","株","珠","诸","猪","蛛","竹","烛","逐","主","煮","嘱","住","助","注","驻","柱","祝","著","筑","铸","抓",
|
||||
"追","准","捉","桌","浊","啄","着","仔","姿","资","滋","子","紫","字","自","宗","棕","踪","总","纵","走","奏","租","足","族","阻","组","祖","钻","嘴","最","罪","醉","尊","遵","昨","左","作","坐","座","阿",
|
||||
"啊","哀","唉","挨","矮","爱","碍","安","岸","按","案","暗","昂","袄","傲","奥","八","巴","扒","吧","疤","拔","把","坝","爸","罢","霸","白","百","柏","摆","败","拜","班","般","斑","搬","板","版","办","半",
|
||||
"伴","扮","拌","瓣","帮","绑","榜","膀","傍","棒","包","胞","雹","宝","饱","保","堡","报","抱","暴","爆","杯","悲","碑","北","贝","备","背","倍","被","辈","奔","本","笨","蹦","逼","鼻","比","彼","笔","鄙",
|
||||
"币","必","毕","闭","毙","弊","碧","蔽","壁","避","臂","边","编","鞭","扁","便","变","遍","辨","辩","辫","标","表","别","宾","滨","冰","兵","丙","柄","饼","并","病","拨","波","玻","剥","脖","菠","播","伯",
|
||||
"驳","泊","博","搏","膊","薄","卜","补","捕","不","布","步","怖","部","擦","猜","才","材","财","裁","采","彩","睬","踩","菜","参","餐","残","蚕","惭","惨","灿","仓","苍","舱","藏","操","槽","草","册","侧",
|
||||
"厕","测","策","层","叉","插","查","茶","察","岔","差","拆","柴","馋","缠","产","铲","颤","昌","长","肠","尝","偿","常","厂","场","敞","畅","倡","唱","抄","钞","超","朝","潮","吵","炒","车","扯","彻","撤",
|
||||
"尘","臣","沉","辰","陈","晨","闯","衬","称","趁","撑","成","呈","承","诚","城","乘","惩","程","秤","吃","驰","迟","持","虫","崇","抽","仇","绸","愁","稠","筹","酬","丑","臭","出","初","除","厨","锄","础",
|
||||
"储","楚","处","触","畜","川","穿","传","船","喘","串","疮","窗","床","创","吹","炊","垂","锤","春","纯","唇","蠢","词","慈","辞","磁","此","次","刺","从","匆","葱","聪","丛","凑","粗","促","醋","窜","催",
|
||||
"摧","脆","翠","村","存","寸","错","曾","搭","达","答","打","大","呆","代","带","待","怠","贷","袋","逮","戴","丹","单","担","耽","胆","旦","但","诞","弹","淡","蛋","当","挡","党","荡","档","刀","叨","导",
|
||||
"岛","倒","蹈","到","悼","盗","道","稻","得","德","的","灯","登","等","凳","低","堤","滴","敌","笛","底","抵","地","弟","帝","递","第","颠","典","点","电","店","垫","殿","叼","雕","吊","钓","调","掉","爹",
|
||||
"跌","叠","蝶","丁","叮","盯","钉","顶","订","定","丢","东","冬","董","懂","动","冻","栋","洞","都","斗","抖","陡","豆","逗","督","毒","读","独","堵","赌","杜","肚","度","渡","端","短","段","断","缎","锻",
|
||||
"堆","队","对","吨","蹲","盾","顿","多","夺","朵","躲","惰","鹅","蛾","额","恶","饿","恩","儿","而","耳","二","发","乏","伐","罚","阀","法","帆","番","翻","凡","烦","繁","反","返","犯","泛","饭","范","贩",
|
||||
"方","坊","芳","防","妨","房","仿","访","纺","放","飞","非","肥","匪","废","沸","肺","费","分","吩","纷","芬","坟","粉","份","奋","愤","粪","丰","风","封","疯","峰","锋","蜂","逢","缝","讽","凤","奉","佛",
|
||||
"否","夫","肤","伏","扶","服","俘","浮","符","幅","福","抚","府","斧","俯","辅","腐","父","付","妇","负","附","咐","复","赴","副","傅","富","腹","覆","该","改","盖","溉","概","干","甘","杆","肝","竿","秆",
|
||||
"赶","敢","感","冈","刚","岗","纲","缸","钢","港","杠","高","膏","糕","搞","稿","告","哥","胳","鸽","割","搁","歌","阁","革","格","葛","隔","个","各","给","根","跟","更","耕","工","弓","公","功","攻","供",
|
||||
"宫","恭","躬","巩","共","贡","勾","沟","钩","狗","构","购","够","估","姑","孤","辜","古","谷","股","骨","鼓","固","故","顾","瓜","刮","挂","乖","拐","怪","关","观","官","冠","馆","管","贯","惯","灌","罐",
|
||||
"光","广","归","龟","规","轨","鬼","柜","贵","桂","跪","滚","棍","锅","国","果","裹","过","哈","孩","海","害","含","寒","喊","汉","汗","旱","航","毫","豪","好","号","浩","耗","喝","禾","合","何","和","河",
|
||||
"核","荷","盒","贺","黑","痕","很","狠","恨","恒","横","衡","轰","哄","烘","红","宏","洪","虹","喉","猴","吼","后","厚","候","乎","呼","忽","狐","胡","壶","湖","糊","蝴","虎","互","户","护","花","华","哗",
|
||||
"滑","猾","化","划","画","话","怀","槐","坏","欢","还","环","缓","幻","唤","换","患","荒","慌","皇","黄","煌","晃","谎","灰","恢","挥","辉","回","悔","汇","会","绘","贿","惠","毁","慧","昏","婚","浑","魂",
|
||||
"混","活","火","伙","或","货","获","祸","惑","击","饥","圾","机","肌","鸡","迹","积","基","绩","激","及","吉","级","即","极","急","疾","集","籍","几","己","挤","脊","计","记","纪","忌","技","际","剂","季",
|
||||
"既","济","继","寄","加","夹","佳","家","嘉","甲","价","驾","架","假","嫁","稼","奸","尖","坚","歼","间","肩","艰","兼","监","煎","拣","俭","茧","捡","减","剪","检","简","见","件","建","剑","荐","贱","健",
|
||||
"舰","渐","践","鉴","键","箭","江","姜","将","浆","僵","疆","讲","奖","桨","匠","降","酱","交","郊","娇","浇","骄","胶","椒","焦","蕉","角","狡","绞","饺","脚","搅","缴","叫","轿","较","教","阶","皆","接",
|
||||
"揭","街","节","劫","杰","洁","结","捷","截","竭","姐","解","介","戒","届","界","借","巾","今","斤","金","津","筋","仅","紧","谨","锦","尽","劲","近","进","晋","浸","禁","京","经","茎","惊","晶","睛","精",
|
||||
"井","颈","景","警","净","径","竞","竟","敬","境","静","镜","纠","究","揪","九","久","酒","旧","救","就","舅","居","拘","鞠","局","菊","橘","举","矩","句","巨","拒","具","俱","剧","惧","据","距","锯","聚",
|
||||
"捐","卷","倦","绢","决","绝","觉","掘","嚼","军","君","均","菌","俊","卡","开","凯","慨","刊","堪","砍","看","康","糠","扛","抗","炕","考","烤","靠","科","棵","颗","壳","咳","可","渴","克","刻","客","课",
|
||||
"肯","垦","恳","坑","空","孔","恐","控","口","扣","寇","枯","哭","苦","库","裤","酷","夸","垮","挎","跨","块","快","宽","款","筐","狂","况","旷","矿","框","亏","葵","愧","昆","捆","困","扩","括","阔","垃",
|
||||
"拉","啦","喇","腊","蜡","辣","来","赖","兰","拦","栏","蓝","篮","览","懒","烂","滥","郎","狼","廊","朗","浪","捞","劳","牢","老","姥","涝","乐","勒","雷","垒","泪","类","僚","了","料","列","劣","烈","猎",
|
||||
"裂","邻","林","累","冷","厘","梨","狸","离","犁","鹂","璃","黎","礼","李","里","理","力","历","厉","立","丽","利","励","例","隶","栗","粒","俩","连","帘","怜","莲","联","廉","镰","脸","练","炼","恋","链",
|
||||
"良","凉","梁","粮","粱","两","亮","谅","辆","量","辽","疗","临","淋","伶","灵","岭","铃","陵","零","龄","领","令","另","溜","刘","流","留","榴","柳","六","龙","笼","聋","隆","垄","拢","楼","搂","漏","露",
|
||||
"芦","炉","虏","鲁","陆","录","鹿","滤","碌","路","驴","轮","论","罗","萝","锣","箩","骡","螺","络","骆","旅","屡","律","虑","率","绿","卵","乱","掠","略","落","妈","麻","马","码","蚂","骂","吗","埋","买",
|
||||
"迈","麦","卖","脉","蛮","馒","瞒","满","慢","漫","忙","芒","盲","茫","猫","毛","矛","茅","茂","冒","贸","帽","貌","么","没","眉","梅","煤","霉","每","美","妹","门","闷","们","萌","盟","猛","蒙","孟","梦",
|
||||
"迷","谜","米","眯","秘","密","蜜","眠","绵","棉","免","勉","面","苗","描","秒","妙","庙","灭","蔑","民","敏","名","明","鸣","命","摸","模","膜","摩","磨","魔","抹","末","沫","莫","漠","墨","默","谋","某",
|
||||
"母","亩","木","目","牧","墓","幕","慕","暮","拿","哪","内","那","纳","乃","奶","耐","男","南","难","囊","挠","恼","脑","闹","呢","嫩","能","尼","泥","你","逆","年","念","娘","酿","鸟","尿","捏","您","宁",
|
||||
"凝","牛","扭","纽","农","浓","弄","奴","努","怒","女","暖","挪","欧","偶","辟","趴","爬","怕","拍","牌","派","攀","盘","判","叛","盼","乓","旁","胖","抛","炮","袍","跑","泡","陪","培","赔","佩","配","喷",
|
||||
"盆","朋","棚","蓬","膨","捧","碰","批","披","劈","皮","疲","脾","匹","僻","片","偏","篇","骗","漂","飘","票","撇","拼","贫","品","乒","平","评","凭","苹","瓶","萍","坡","泼","婆","迫","破","魄","剖","仆",
|
||||
"扑","铺","葡","朴","普","谱","七","妻","戚","期","欺","漆","齐","其","奇","骑","棋","旗","乞","企","岂","启","起","气","弃","汽","砌","器","恰","洽","千","迁","牵","铅","谦","签","前","钱","钳","潜","浅",
|
||||
"遣","欠","歉","枪","腔","强","墙","抢","悄","敲","锹","乔","侨","桥","瞧","巧","切","茄","且","窃","亲","侵","芹","琴","禽","勤","青","轻","倾","清","蜻","情","晴","顷","请","庆","穷","丘","秋","求","球",
|
||||
"区","曲","驱","屈","趋","渠","取","去","趣","圈","全","权","泉","拳","犬","劝","券","缺","却","雀","确","鹊","裙","群","然","燃","染","嚷","壤","让","饶","扰","绕","惹","热","人","仁","忍","刃","认","任",
|
||||
"扔","仍","日","绒","荣","容","熔","融","柔","揉","肉","如","乳","辱","入","软","锐","瑞","润","若","弱","撒","洒","塞","赛","三","伞","散","桑","嗓","丧","扫","嫂","色","森","杀","沙","纱","傻","筛","晒",
|
||||
"山","删","衫","闪","陕","扇","善","伤","商","裳","晌","赏","上","尚","捎","梢","烧","稍","勺","少","绍","哨","舌","蛇","舍","设","社","射","涉","摄","申","伸","身","深","神","沈","审","婶","肾","甚","渗",
|
||||
"慎","升","生","声","牲","胜","绳","省","圣","盛","剩","尸","失","师","诗","施","狮","湿","十","什","石","时","识","实","拾","蚀","食","史","使","始","驶","士","氏","世","市","示","式","事","侍","势","视",
|
||||
"试","饰","室","是","柿","适","逝","释","誓","池","匙","尺","齿","耻","斥","赤","翅","充","冲","收","手","守","首","寿","受","兽","售","授","瘦","书","叔","殊","梳","疏","舒","输","蔬","熟","暑","鼠","属",
|
||||
"薯","术","束","述","树","竖","数","刷","耍","衰","摔","甩","帅","拴","双","霜","爽","谁","水","税","睡","顺","说","嗽","丝","司","私","思","斯","撕","死","四","寺","似","饲","肆","松","宋","诵","送","颂",
|
||||
"搜","艘","苏","俗","诉","肃","素","穗","孙","损","笋","缩","所","索","锁","她","他","它","塌","塔","踏","台","抬","太","态","泰","贪","摊","滩","坛","谈","痰","坦","毯","叹","炭","探","汤","唐","堂","塘",
|
||||
"膛","糖","倘","躺","烫","趟","涛","掏","滔","逃","桃","陶","淘","萄","讨","套","特","疼","腾","梯","踢","提","题","蹄","体","剃","惕","替","天","添","田","甜","填","挑","条","跳","贴","铁","帖","厅","听",
|
||||
"亭","庭","停","挺","艇","通","同","桐","铜","童","统","桶","筒","痛","偷","头","投","透","秃","突","图","徒","涂","途","屠","土","吐","兔","团","推","腿","退","吞","屯","托","拖","脱","驼","妥","娃","挖",
|
||||
"蛙","瓦","袜","歪","外","弯","湾","丸","完","玩","顽","挽","晚","碗","万","汪","亡","王","网","往","妄","忘","旺","望","危","威","微","为","围","违","唯","维","伟","伪","尾","委","卫","未","位","味","畏",
|
||||
"胃","喂","慰","温","文","纹","闻","蚊","稳","问","翁","窝","我","沃","卧","握","乌","污","呜","屋","无","吴","五","午","伍","武","侮","舞","勿","务","物","误","悟","雾","夕","西","吸","希","析","息","牺",
|
||||
"悉","惜","稀","溪","锡","熄","膝","习","席","袭","洗","喜","戏","系","细","隙","虾","瞎","峡","狭","霞","下","吓","夏","厦","仙","先","纤","掀","鲜","闲","弦","贤","咸","衔","嫌","显","险","县","现","线",
|
||||
"限","宪","陷","馅","羡","献","乡","相","香","箱","详","祥","享","响","想","向","巷","项","象","像","橡","削","宵","消","销","小","晓","孝","效","校","笑","些","歇","协","邪","胁","斜","携","鞋","写","泄",
|
||||
"泻","卸","屑","械","谢","心","辛","欣","新","薪","信","兴","星","腥","刑","行","形","型","醒","杏","姓","幸","性","凶","兄","胸","雄","熊","休","修","羞","朽","秀","绣","袖","锈","须","虚","需","徐","速",
|
||||
"宿","塑","酸","蒜","算","虽","随","岁","碎","许","序","叙","绪","续","絮","蓄","宣","悬","旋","选","穴","学","雪","血","寻","巡","旬","询","循","训","讯","迅","压","呀","押","鸦","鸭","牙","芽","崖","哑",
|
||||
"雅","亚","咽","烟","淹","延","严","言","岩","沿","炎","研","盐","蜒","颜","掩","眼","演","厌","宴","艳","验","焰","雁","燕","央","殃","秧","扬","羊","阳","杨","洋","仰","养","氧","痒","样","妖","腰","邀",
|
||||
"窑","谣","摇","遥","咬","药","要","耀","爷","也","冶","野","业","叶","页","夜","液","一","衣","医","依","仪","宜","姨","移","遗","疑","乙","已","以","蚁","倚","椅","义","亿","忆","艺","议","亦","异","役",
|
||||
"译","易","疫","益","谊","意","毅","翼","因","阴","姻","音","银","引","饮","隐","印","应","英","樱","鹰","迎","盈","营","蝇","赢","影","映","硬","佣","拥","庸","永","咏","泳","勇","涌","用","优","忧","悠",
|
||||
"尤","由","犹","邮","油","游","友","有","又","右","幼","诱","于","予","余","鱼","娱","渔","愉","愚","榆","与","宇","屿","羽","雨","语","玉","育","郁","狱","浴","预","域","欲","御","裕","遇","愈","誉","冤",
|
||||
"元","员","园","原","圆","援","缘","源","远","怨","院","愿","约","月","钥","悦","阅","跃","越","云","匀","允","孕","运","晕","韵","杂","灾","栽","宰","载","再","在","咱","暂","赞","脏","葬","遭","糟","早",
|
||||
"枣","澡","灶","皂","造","燥","躁","则","择","泽","责","贼","怎","增","赠","渣","扎","轧","闸","眨","炸","榨","摘","宅","窄","债","寨","沾","粘","斩","展","盏","崭","占","战","站","张","章","涨","掌","丈",
|
||||
"仗","帐","胀","障","招","找","召","兆","赵","照","罩","遮","折","哲","者","这","浙","贞","针","侦","珍","真","诊","枕","阵","振","镇","震","争","征","挣","睁","筝","蒸","整","正","证","郑","政","症","之",
|
||||
"支","汁","芝","枝","知","织","肢","脂","蜘","执","侄","直","值","职","植","殖","止","只","旨","址","纸","指","至","志","制","帜","治","质","秩","致","智","置","中","忠","终","钟","肿","种","众","重","州",
|
||||
"舟","周","洲","粥","宙","昼","皱","骤","朱","株","珠","诸","猪","蛛","竹","烛","逐","主","煮","嘱","住","助","注","驻","柱","祝","著","筑","铸","抓","爪","专","砖","转","赚","庄","装","壮","状","撞","追",
|
||||
"准","捉","桌","浊","啄","着","仔","姿","资","滋","子","紫","字","自","宗","棕","踪","总","纵","走","奏","租","足","族","阻","组","祖","钻","嘴","最","罪","醉","尊","遵","昨","左","作","坐","座"};
|
||||
|
||||
int PET_DEBUG_initPetOne( int charaindex)
|
||||
{
|
||||
Char ch;
|
||||
int havepetindex;
|
||||
int index;
|
||||
/* 矢永玄毛 化月井譬屯月 */
|
||||
/* 矢永玄毛 化月井譬屯月 */
|
||||
havepetindex = CHAR_getCharPetElement( charaindex) ;
|
||||
|
||||
memset( &ch, 0, sizeof( ch));
|
||||
if( !CHAR_getDefaultChar( &ch,31010 ) )return -1;
|
||||
|
||||
/* 飓 寞 */
|
||||
/* 飓 寞 */
|
||||
ch.data[CHAR_BASEBASEIMAGENUMBER]
|
||||
= ch.data[CHAR_BASEIMAGENUMBER] = 30008;
|
||||
ch.data[CHAR_WHICHTYPE] = CHAR_TYPEPET;
|
||||
/* 猾 */
|
||||
/* 猾 */
|
||||
ch.workint[CHAR_WORKATTACKPOWER] = 100;
|
||||
/* 潮 */
|
||||
/* 潮 */
|
||||
ch.workint[CHAR_WORKDEFENCEPOWER] = 50;
|
||||
/* HP */
|
||||
ch.data[CHAR_HP] = 100;
|
||||
/* 蟆 */
|
||||
strcpysafe( ch.string[CHAR_NAME].string, 32, "宠物1" );
|
||||
/* 蟆 */
|
||||
strcpysafe( ch.string[CHAR_NAME].string, 32, "宠物1" );
|
||||
|
||||
/* CHAR卞喃曰癫化月 */
|
||||
/* CHAR卞喃曰癫化月 */
|
||||
index = PET_initCharOneArray( &ch);
|
||||
|
||||
if( index < 0 ) return -1;
|
||||
|
||||
/* 仍潜谛本永玄 */
|
||||
/* 仍潜谛本永玄 */
|
||||
CHAR_setWorkInt( index, CHAR_WORKPLAYERINDEX, charaindex);
|
||||
CHAR_setWorkInt( index,CHAR_WORKOBJINDEX,-1);
|
||||
CHAR_setCharPet( charaindex, havepetindex, index);
|
||||
@ -201,24 +201,24 @@ static int _PET_dropPet( int charaindex, int havepetindex, int tofl, int tox, in
|
||||
if( !CHAR_CHECKINDEX( charaindex ) )return FALSE;
|
||||
if( CHAR_CHECKINDEX( petindex) == FALSE ) return FALSE;
|
||||
|
||||
#ifdef _AVID_TRADETRYBUG //丢出宠物
|
||||
#ifdef _AVID_TRADETRYBUG //丢出宠物
|
||||
if( CHAR_getWorkInt( charaindex, CHAR_WORKTRADEMODE) == CHAR_TRADE_TRADING ){
|
||||
CHAR_talkToCli( charaindex, -1, "交易状态中无法丢出宠物。", CHAR_COLORYELLOW );
|
||||
CHAR_talkToCli( charaindex, -1, "交易状态中无法丢出宠物。", CHAR_COLORYELLOW );
|
||||
return FALSE;
|
||||
}
|
||||
#endif
|
||||
// CoolFish: Family 2001/6/13
|
||||
if (CHAR_getInt(petindex, CHAR_PETFAMILY) == 1){
|
||||
CHAR_talkToCli(charaindex, -1, "家族守护兽无法丢出!", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli(charaindex, -1, "家族守护兽无法丢出!", CHAR_COLORYELLOW);
|
||||
return FALSE;
|
||||
}
|
||||
if (CHAR_getInt(charaindex, CHAR_RIDEPET) == havepetindex ){
|
||||
CHAR_talkToCli(charaindex, -1, "骑乘中的宠物无法丢出!", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli(charaindex, -1, "骑乘中的宠物无法丢出!", CHAR_COLORYELLOW);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if( strlen(CHAR_getChar(petindex,CHAR_USERPETNAME))>0 && strstr(CHAR_getChar(petindex,CHAR_USERPETNAME),"*")!=NULL ){
|
||||
CHAR_talkToCli(charaindex, -1, "宠物自定义名称中含有(*),无法丢弃、卖店、交易、摆摊,请修改后操作。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli(charaindex, -1, "宠物自定义名称中含有(*),无法丢弃、卖店、交易、摆摊,请修改后操作。", CHAR_COLORYELLOW);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@ -244,7 +244,7 @@ static int _PET_dropPet( int charaindex, int havepetindex, int tofl, int tox, in
|
||||
}
|
||||
}
|
||||
if( count_item > 80 || count_chara > 80 ) {
|
||||
CHAR_talkToCli( charaindex, -1, "这里已经太拥挤了,不能再丢了。", CHAR_COLORYELLOW );
|
||||
CHAR_talkToCli( charaindex, -1, "这里已经太拥挤了,不能再丢了。", CHAR_COLORYELLOW );
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
@ -309,16 +309,16 @@ static int _PET_dropPet( int charaindex, int havepetindex, int tofl, int tox, in
|
||||
|
||||
|
||||
/*------------------------------------------------------------
|
||||
* 泫 矢永玄毛 仁
|
||||
* 娄醒
|
||||
* itemindex int 失奶 丞奶件犯永弁旦
|
||||
* floor int 白夫失ID
|
||||
* x int x甄
|
||||
* y int y甄
|
||||
* net BOOL 生永玄伐□弁及仇午毛允月井升丹井
|
||||
* 忒曰袄
|
||||
* 岳 objindex
|
||||
* 撩 -1
|
||||
* 泫 矢永玄毛 仁
|
||||
* 娄醒
|
||||
* itemindex int 失奶 丞奶件犯永弁旦
|
||||
* floor int 白夫失ID
|
||||
* x int x甄
|
||||
* y int y甄
|
||||
* net BOOL 生永玄伐□弁及仇午毛允月井升丹井
|
||||
* 忒曰袄
|
||||
* 岳 objindex
|
||||
* 撩 -1
|
||||
------------------------------------------------------------*/
|
||||
int PET_dropPetAbsolute( int petindex, int floor, int x, int y,BOOL net)
|
||||
{
|
||||
@ -333,10 +333,10 @@ int PET_dropPetAbsolute( int petindex, int floor, int x, int y,BOOL net)
|
||||
object.y = y;
|
||||
object.floor = floor;
|
||||
|
||||
/* 左皮斥尼弁玄瓒 允月 */
|
||||
/* 左皮斥尼弁玄瓒 允月 */
|
||||
objindex = initObjectOne( &object );
|
||||
|
||||
/* 生永玄伐□弁白仿弘互凶匀化中月午五反允月 by ringo*/
|
||||
/* 生永玄伐□弁白仿弘互凶匀化中月午五反允月 by ringo*/
|
||||
if( net )
|
||||
CHAR_sendWatchEvent( objindex,CHAR_ACTSTAND,NULL,0,TRUE);
|
||||
|
||||
@ -383,7 +383,7 @@ int PET_dropPet( int charaindex, int havepetindex)
|
||||
// PET_NOT_Drop == EVOLUTION_getPetENABLETRADE( CHAR_getInt( petindex, CHAR_PETID)) ){
|
||||
if( (PET_NOT_DROP) & EVOLUTION_getPetENABLETRADE( CHAR_getInt( petindex, CHAR_PETID))){
|
||||
char buf[256];
|
||||
sprintf( buf, "%s无法丢弃!~",CHAR_getChar( petindex, CHAR_NAME) );
|
||||
sprintf( buf, "%s无法丢弃!~",CHAR_getChar( petindex, CHAR_NAME) );
|
||||
CHAR_talkToCli(charaindex,-1,buf,CHAR_COLORRED);
|
||||
return FALSE;
|
||||
}
|
||||
@ -394,15 +394,15 @@ int PET_dropPet( int charaindex, int havepetindex)
|
||||
skillid=CHAR_getPetSkill(petindex,i);
|
||||
skillarray = PETSKILL_getPetskillArray( skillid);
|
||||
if( PETSKILL_CHECKINDEX( skillarray) == FALSE ) continue;
|
||||
if(strstr(PETSKILL_getChar( skillarray, PETSKILL_NAME),"★")){
|
||||
CHAR_talkToCli(charaindex, -1, "此宠物为绑定宠物,无法丢弃", CHAR_COLORRED);
|
||||
if(strstr(PETSKILL_getChar( skillarray, PETSKILL_NAME),"★")){
|
||||
CHAR_talkToCli(charaindex, -1, "此宠物为绑定宠物,无法丢弃", CHAR_COLORRED);
|
||||
return;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#ifdef _PET_BINDING
|
||||
if(strstr(CHAR_getChar(petindex,CHAR_NAME),"*") || strstr(CHAR_getChar(petindex,CHAR_NAME),"+")){
|
||||
CHAR_talkToCli(charaindex, -1, "此宠物为绑定宠物,无法丢弃", CHAR_COLORRED);
|
||||
CHAR_talkToCli(charaindex, -1, "此宠物为绑定宠物,无法丢弃", CHAR_COLORRED);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
@ -436,7 +436,7 @@ int PET_dropPet( int charaindex, int havepetindex)
|
||||
randtime = atoi(tempbuff);
|
||||
if(timep - randtime < getEditBaseTime()*randwrong){
|
||||
char errbuf[256];
|
||||
sprintf(errbuf,"您还有%d秒才可以继续此操作!",getEditBaseTime()*randwrong-(timep - randtime));
|
||||
sprintf(errbuf,"您还有%d秒才可以继续此操作!",getEditBaseTime()*randwrong-(timep - randtime));
|
||||
CHAR_talkToCli(charaindex, -1, errbuf, CHAR_COLORRED);
|
||||
return 0;
|
||||
}
|
||||
@ -446,17 +446,17 @@ int PET_dropPet( int charaindex, int havepetindex)
|
||||
// CHAR_setWorkInt(charaindex,CHAR_WORKRANDEDITBASETIME,timep);
|
||||
// else{
|
||||
// char errbuf[256];
|
||||
// sprintf(errbuf,"您还有%d秒才可以继续此操作!",getEditBaseTime()-(timep-CHAR_getWorkInt(charaindex,CHAR_WORKRANDEDITBASETIME)));
|
||||
// sprintf(errbuf,"您还有%d秒才可以继续此操作!",getEditBaseTime()-(timep-CHAR_getWorkInt(charaindex,CHAR_WORKRANDEDITBASETIME)));
|
||||
// CHAR_talkToCli(charaindex, -1, errbuf, CHAR_COLORRED);
|
||||
// return;
|
||||
// }
|
||||
int fd = getfdFromCharaIndex( charaindex);
|
||||
char arg[255];
|
||||
char buf[128];
|
||||
char jiabuf[][5]={"加","╋","╉","╈","╂","十","╃"};
|
||||
char jianbuf[][5]={"减","一","-","—","-","—","━"};
|
||||
char chengbuf[][5]={"乘","*","x","X","X","x","*"};
|
||||
char numbuf[][5]={"0","1","2","3","4","5","6","7","8","9"};
|
||||
char jiabuf[][5]={"加","╋","╉","╈","╂","十","╃"};
|
||||
char jianbuf[][5]={"减","一","-","—","-","—","━"};
|
||||
char chengbuf[][5]={"乘","*","x","X","X","x","*"};
|
||||
char numbuf[][5]={"0","1","2","3","4","5","6","7","8","9"};
|
||||
int i,j,k,l,m;
|
||||
i = RAND(30,70);
|
||||
j = RAND(1,29);
|
||||
@ -505,7 +505,7 @@ int PET_dropPet( int charaindex, int havepetindex)
|
||||
}
|
||||
sprintf(arg,"%d|%d",havepetindex,k);
|
||||
CHAR_setWorkChar(charaindex, CHAR_WORKDROPMM, arg);
|
||||
sprintf(buf,"请输入这个算术公式的结果(%s%s%s=?):",ibuf,typebuf,jbuf);
|
||||
sprintf(buf,"请输入这个算术公式的结果(%s%s%s=?):",ibuf,typebuf,jbuf);
|
||||
lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGEANDLINEINPUT,
|
||||
WINDOW_BUTTONTYPE_OK,
|
||||
CHAR_WINDOWTYPE_RAND1_DROPMM,
|
||||
@ -568,7 +568,7 @@ int PET_dropPet( int charaindex, int havepetindex)
|
||||
}
|
||||
sprintf(arg,"%d|%d",havepetindex,randnum1);
|
||||
CHAR_setWorkChar(charaindex, CHAR_WORKDROPMM, arg);
|
||||
sprintf(buf,"3\n请选择这个算术公式的结果(%s%s%s=?):\n \n \n选项一:%s\n选项二:%s\n选项三:%s\n选项四:%s\n选项五:%s\n",ibuf,typebuf,jbuf,tempret[0],tempret[1],tempret[2],tempret[3],tempret[4]);
|
||||
sprintf(buf,"3\n请选择这个算术公式的结果(%s%s%s=?):\n \n \n选项一:%s\n选项二:%s\n选项三:%s\n选项四:%s\n选项五:%s\n",ibuf,typebuf,jbuf,tempret[0],tempret[1],tempret[2],tempret[3],tempret[4]);
|
||||
lssproto_WN_send( fd, WINDOW_MESSAGETYPE_SELECT,
|
||||
WINDOW_BUTTONTYPE_OK,
|
||||
CHAR_WINDOWTYPE_RAND2_DROPMM,
|
||||
@ -636,7 +636,7 @@ int PET_dropPet( int charaindex, int havepetindex)
|
||||
sprintf(randtmpbuf[2],"%s",hanzibuf[RAND(1,5000)-1]);
|
||||
sprintf(randtmpbuf[3],"%s",hanzibuf[RAND(1,5000)-1]);
|
||||
sprintf(randquestion,"%s",str_hanzi_ganrao(randtmpbuf[0],randtmpbuf[1],randtmpbuf[2],randtmpbuf[3],0,0,0,0,0,0));
|
||||
strcat(randquestion,"(请找出相同词组)");
|
||||
strcat(randquestion,"(请找出相同词组)");
|
||||
int newrand1 = RAND(1,100)-1;
|
||||
int newrand2 = RAND(1,100)-1;
|
||||
int newrand3 = RAND(1,100)-1;
|
||||
@ -668,7 +668,7 @@ int PET_dropPet( int charaindex, int havepetindex)
|
||||
sprintf(randwronganswer2,"[%c%c%c%c%c]",tempbuf[0],tempbuf[1],tempbuf[4],tempbuf[2],tempbuf[3]);
|
||||
sprintf(randwronganswer3,"[%c%c%c%c%c]",tempbuf[4],tempbuf[1],tempbuf[2],tempbuf[0],tempbuf[3]);
|
||||
sprintf(randwronganswer4,"[%c%c%c%c%c]",tempbuf[1],tempbuf[0],tempbuf[2],tempbuf[3],tempbuf[4]);
|
||||
sprintf(randquestion,"[%s](请找出相同词组)",tempbuf);
|
||||
sprintf(randquestion,"[%s](请找出相同词组)",tempbuf);
|
||||
sprintf(randrightanswer,"[%s]",tempbuf);
|
||||
char* randstr = NULL;
|
||||
randstr = str_ganrao(randquestion);
|
||||
@ -700,33 +700,33 @@ int PET_dropPet( int charaindex, int havepetindex)
|
||||
for(n=1;n<=5;n++){
|
||||
if(n==randnum1){
|
||||
if(qianhounum<=50)
|
||||
sprintf(tempret[n-1],"选项( %d %s )",rightnum,randrightanswer);
|
||||
sprintf(tempret[n-1],"选项( %d %s )",rightnum,randrightanswer);
|
||||
else
|
||||
sprintf(tempret[n-1],"选项( %s %d )",randrightanswer,rightnum);
|
||||
sprintf(tempret[n-1],"选项( %s %d )",randrightanswer,rightnum);
|
||||
}else{
|
||||
if(m==1){
|
||||
if(qianhounum<=50)
|
||||
sprintf(tempret[n-1],"选项( %d %s )",wrongnum1,randwronganswer1);
|
||||
sprintf(tempret[n-1],"选项( %d %s )",wrongnum1,randwronganswer1);
|
||||
else
|
||||
sprintf(tempret[n-1],"选项( %s %d )",randwronganswer1,wrongnum1);
|
||||
sprintf(tempret[n-1],"选项( %s %d )",randwronganswer1,wrongnum1);
|
||||
m = 2;
|
||||
}else if(m==2){
|
||||
if(qianhounum<=50)
|
||||
sprintf(tempret[n-1],"选项( %d %s )",wrongnum2,randwronganswer2);
|
||||
sprintf(tempret[n-1],"选项( %d %s )",wrongnum2,randwronganswer2);
|
||||
else
|
||||
sprintf(tempret[n-1],"选项( %s %d )",randwronganswer2,wrongnum2);
|
||||
sprintf(tempret[n-1],"选项( %s %d )",randwronganswer2,wrongnum2);
|
||||
m = 3;
|
||||
}else if(m==3){
|
||||
if(qianhounum<=50)
|
||||
sprintf(tempret[n-1],"选项( %d %s )",wrongnum3,randwronganswer3);
|
||||
sprintf(tempret[n-1],"选项( %d %s )",wrongnum3,randwronganswer3);
|
||||
else
|
||||
sprintf(tempret[n-1],"选项( %s %d )",randwronganswer3,wrongnum3);
|
||||
sprintf(tempret[n-1],"选项( %s %d )",randwronganswer3,wrongnum3);
|
||||
m = 4;
|
||||
}else if(m==4){
|
||||
if(qianhounum<=50)
|
||||
sprintf(tempret[n-1],"选项( %d %s )",wrongnum4,randwronganswer4);
|
||||
sprintf(tempret[n-1],"选项( %d %s )",wrongnum4,randwronganswer4);
|
||||
else
|
||||
sprintf(tempret[n-1],"选项( %s %d )",randwronganswer4,wrongnum4);
|
||||
sprintf(tempret[n-1],"选项( %s %d )",randwronganswer4,wrongnum4);
|
||||
m = 5;
|
||||
}
|
||||
}
|
||||
@ -741,7 +741,7 @@ int PET_dropPet( int charaindex, int havepetindex)
|
||||
windowtype = WINDOW_MESSAGETYPE_SELECT;
|
||||
}
|
||||
CHAR_setWorkChar(charaindex, CHAR_WORKDROPMM, arg);
|
||||
sprintf(buf,"%s\n%s\n%s\n%s\n%s\n%s\n输入正确答案括号内的5位数字或者点选答案",randquestion,tempret[0],tempret[1],tempret[2],tempret[3],tempret[4]);
|
||||
sprintf(buf,"%s\n%s\n%s\n%s\n%s\n%s\n输入正确答案括号内的5位数字或者点选答案",randquestion,tempret[0],tempret[1],tempret[2],tempret[3],tempret[4]);
|
||||
lssproto_WN_send( fd, windowtype,
|
||||
WINDOW_BUTTONTYPE_OK,
|
||||
CHAR_WINDOWTYPE_RAND4_DROPMM,
|
||||
@ -761,14 +761,14 @@ int PET_dropPet( int charaindex, int havepetindex)
|
||||
#endif
|
||||
if( _PET_dropPet( charaindex, havepetindex, -1,-1,-1) == TRUE ){
|
||||
char tmpbuf[256];
|
||||
sprintf(tmpbuf,"丢弃 %s (宠物消失时间%d秒)。",CHAR_getChar( petindex, CHAR_NAME),getPetdeletetime());
|
||||
sprintf(tmpbuf,"丢弃 %s (宠物消失时间%d秒)。",CHAR_getChar( petindex, CHAR_NAME),getPetdeletetime());
|
||||
CHAR_talkToCli( charaindex, -1, tmpbuf, CHAR_COLORYELLOW );
|
||||
LogPet(
|
||||
CHAR_getChar( charaindex, CHAR_NAME ), /* 平乓仿 */
|
||||
CHAR_getChar( charaindex, CHAR_NAME ), /* 平乓仿 */
|
||||
CHAR_getChar( charaindex, CHAR_CDKEY ),
|
||||
CHAR_getChar( petindex, CHAR_NAME),
|
||||
CHAR_getInt( petindex, CHAR_LV),
|
||||
"Drop(丢宠)",
|
||||
"Drop(丢宠)",
|
||||
CHAR_getInt( charaindex,CHAR_FLOOR),
|
||||
CHAR_getInt( charaindex,CHAR_X ),
|
||||
CHAR_getInt( charaindex,CHAR_Y ),
|
||||
@ -785,7 +785,7 @@ int PET_dropPetFLXY( int charaindex, int havepetindex, int fl, int x, int y)
|
||||
}
|
||||
|
||||
/*------------------------------------------------------------
|
||||
* 矢永玄迕及奶矛件玄楮醒毛本永玄仄化支月
|
||||
* 矢永玄迕及奶矛件玄楮醒毛本永玄仄化支月
|
||||
------------------------------------------------------------*/
|
||||
int PET_initCharOneArray( Char *ch)
|
||||
{
|
||||
@ -897,9 +897,9 @@ int PET_createPetFromCharaIndex( int charaindex, int enemyindex)
|
||||
CHAR_getChar( enemyindex, CHAR_NAME) );
|
||||
newindex = PET_initCharOneArray( &CharNew );
|
||||
#ifdef _CAX_LVTISHI
|
||||
if (CharNew.data[CHAR_LV] == 1){//如果捕捉到的宠物是1级
|
||||
int namelen=strlen(CHAR_getChar(newindex, CHAR_NAME));//获得宠物名称的长度
|
||||
char petname[namelen-3];//因为要去掉宝宝这四个字符,所以重新设置名称的话,直接取消掉后面的四个字符
|
||||
if (CharNew.data[CHAR_LV] == 1){//如果捕捉到的宠物是1级
|
||||
int namelen=strlen(CHAR_getChar(newindex, CHAR_NAME));//获得宠物名称的长度
|
||||
char petname[namelen-3];//因为要去掉宝宝这四个字符,所以重新设置名称的话,直接取消掉后面的四个字符
|
||||
snprintf( petname, sizeof( petname),"%s",CHAR_getChar( newindex, CHAR_NAME));
|
||||
CHAR_setChar( newindex, CHAR_NAME, petname);
|
||||
}
|
||||
@ -927,10 +927,10 @@ int PET_createPetFromCharaIndex( int charaindex, int enemyindex)
|
||||
BOOL PET_SelectBattleEntryPet( int charaindex, int petarray)
|
||||
{
|
||||
int pindex;
|
||||
/* 爵 反轮仁 仿弘匹仇木卞娄匀井井月第 岭丐曰 */
|
||||
/* 爵 反轮仁 仿弘匹仇木卞娄匀井井月第 岭丐曰 */
|
||||
if( CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE)
|
||||
!= BATTLE_CHARMODE_NONE) return FALSE;
|
||||
/* -1及桦宁反]-1卞仄化本永玄仄化蔽歹曰[*/
|
||||
/* -1及桦宁反]-1卞仄化本永玄仄化蔽歹曰[*/
|
||||
if( petarray == -1 ) {
|
||||
CHAR_setInt( charaindex, CHAR_DEFAULTPET, -1 );
|
||||
return TRUE;
|
||||
@ -941,7 +941,7 @@ BOOL PET_SelectBattleEntryPet( int charaindex, int petarray)
|
||||
|
||||
if( CHAR_getFlg( pindex, CHAR_ISDIE )) return FALSE;
|
||||
#ifdef _RIDEBUG
|
||||
//判断是否为骑宠
|
||||
//判断是否为骑宠
|
||||
if(CHAR_getInt( charaindex, CHAR_RIDEPET) == petarray) return FALSE;
|
||||
#endif
|
||||
CHAR_setInt( charaindex, CHAR_DEFAULTPET, petarray );
|
||||
@ -968,11 +968,11 @@ int PET_dropPetFollow( int charaindex, int havepetindex, int tofl, int tox, int
|
||||
if( CHAR_CHECKINDEX( petindex) == FALSE ) return FALSE;
|
||||
|
||||
if (CHAR_getInt(petindex, CHAR_PETFAMILY) == 1){
|
||||
CHAR_talkToCli(charaindex, -1, "家族守护兽无法丢出!", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli(charaindex, -1, "家族守护兽无法丢出!", CHAR_COLORYELLOW);
|
||||
return FALSE;
|
||||
}
|
||||
if (CHAR_getInt(charaindex, CHAR_RIDEPET) == havepetindex){
|
||||
CHAR_talkToCli(charaindex, -1, "骑乘中的宠物无法跟随!", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli(charaindex, -1, "骑乘中的宠物无法跟随!", CHAR_COLORYELLOW);
|
||||
return FALSE;
|
||||
}
|
||||
if( tofl == -1 ) {
|
||||
@ -1043,7 +1043,7 @@ int PET_dropPetFollow( int charaindex, int havepetindex, int tofl, int tox, int
|
||||
CHAR_getChar( charaindex, CHAR_CDKEY ),
|
||||
CHAR_getChar( petindex, CHAR_NAME),
|
||||
CHAR_getInt( petindex, CHAR_LV),
|
||||
"Follow(溜宠)",
|
||||
"Follow(溜宠)",
|
||||
CHAR_getInt( charaindex,CHAR_FLOOR),
|
||||
CHAR_getInt( charaindex,CHAR_X ),
|
||||
CHAR_getInt( charaindex,CHAR_Y ),
|
||||
@ -1070,8 +1070,8 @@ void PET_showEditBaseMsg( int charaindex, int toindex, int itemindex, int *work)
|
||||
{
|
||||
int i, maxnums = 6000;
|
||||
char buf1[256];
|
||||
char buf2[][32]={"腕力成长率","耐久力成长率","速度成长率","体力成长率","能力"};
|
||||
char buf3[][32]={"大幅提高","略为提高","略为减少"};
|
||||
char buf2[][32]={"腕力成长率","耐久力成长率","速度成长率","体力成长率","能力"};
|
||||
char buf3[][32]={"大幅提高","略为提高","略为减少"};
|
||||
|
||||
if( CHAR_getInt( toindex, CHAR_WHICHTYPE) != CHAR_TYPEPET)
|
||||
return;
|
||||
@ -1079,24 +1079,24 @@ void PET_showEditBaseMsg( int charaindex, int toindex, int itemindex, int *work)
|
||||
|
||||
for( i=0; i<4; i++) {
|
||||
int type = ITEM_getInt( itemindex, (ITEM_MODIFYATTACK + i));
|
||||
// print(" 喂[%d]%d+%d ", i, work[i], type);
|
||||
// print(" 喂[%d]%d+%d ", i, work[i], type);
|
||||
work[i] += type;
|
||||
strcpy( buf1,"\0");
|
||||
if( work[i] > maxnums ) {
|
||||
sprintf(buf1,"%s 已经达到最高了。", buf2[i]);
|
||||
sprintf(buf1,"%s 已经达到最高了。", buf2[i]);
|
||||
work[i] = maxnums;
|
||||
}else if( work[i] < 0 ) {
|
||||
sprintf(buf1,"%s 已经为零了。", buf2[i]);
|
||||
sprintf(buf1,"%s 已经为零了。", buf2[i]);
|
||||
work[i] = 0;
|
||||
}else {
|
||||
if( type > 0 ) {
|
||||
if( type > 2 ) {
|
||||
sprintf(buf1,"%s %s %s", buf2[i], buf3[0], "。");
|
||||
sprintf(buf1,"%s %s %s", buf2[i], buf3[0], "。");
|
||||
}else {
|
||||
sprintf(buf1,"%s %s %s", buf2[i], buf3[1], "。");
|
||||
sprintf(buf1,"%s %s %s", buf2[i], buf3[1], "。");
|
||||
}
|
||||
}else if( type < 0 ){
|
||||
sprintf(buf1,"%s %s %s", buf2[i], buf3[2], "。");
|
||||
sprintf(buf1,"%s %s %s", buf2[i], buf3[2], "。");
|
||||
}
|
||||
}
|
||||
if( strcmp( buf1, "\0")) {
|
||||
@ -1147,7 +1147,7 @@ BOOL CHAR_DelPetForIndex( int charaindex, int petindex)
|
||||
snprintf( szPet, sizeof( szPet ), "K%d", i);
|
||||
CHAR_sendStatusString( charaindex, szPet );
|
||||
|
||||
snprintf( msgbuf,sizeof( msgbuf), "交出%s。", CHAR_getChar( petindex, CHAR_NAME));
|
||||
snprintf( msgbuf,sizeof( msgbuf), "交出%s。", CHAR_getChar( petindex, CHAR_NAME));
|
||||
CHAR_talkToCli( charaindex, -1, msgbuf, CHAR_COLORYELLOW);
|
||||
CHAR_endCharOneArray( petindex );
|
||||
}
|
||||
|
@ -160,7 +160,7 @@ void PET_Talkfunc( int meindex, int talkerindex, char *msg, int color)
|
||||
if( CHAR_getInt( meindex, CHAR_LV ) >= CHAR_getInt( meindex, CHAR_LIMITLEVEL) ) {
|
||||
Type = 1;
|
||||
}
|
||||
//设定为非主人不得与PET互动
|
||||
//设定为非主人不得与PET互动
|
||||
if( strcmp( CHAR_getChar( meindex, CHAR_OWNERCDKEY), CHAR_getChar( talkerindex, CHAR_CDKEY) ) ||
|
||||
strcmp( CHAR_getChar( meindex, CHAR_OWNERCHARANAME), CHAR_getChar( talkerindex, CHAR_NAME) )){
|
||||
#ifdef _PET_TALKPRO
|
||||
@ -169,7 +169,7 @@ void PET_Talkfunc( int meindex, int talkerindex, char *msg, int color)
|
||||
if( NPC_Util_GetStrFromStrWithDelim( buf1, "NoPlayerMsg", buf3, sizeof( buf3)) != NULL ) {
|
||||
#endif
|
||||
}else {
|
||||
sprintf(buf3,"陌生人?我不认识你呀!你是坏人!");
|
||||
sprintf(buf3,"陌生人?我不认识你呀!你是坏人!");
|
||||
}
|
||||
CHAR_talkToCli( talkerindex, meindex, buf3, color);
|
||||
return;
|
||||
@ -183,22 +183,22 @@ void PET_Talkfunc( int meindex, int talkerindex, char *msg, int color)
|
||||
#endif
|
||||
talkNo++;
|
||||
if( ( strstr( buf2, TalkType[Type]) == NULL ) && ( strstr( buf2, TalkType[2]) == NULL ) )continue;
|
||||
if( NPC_Util_GetStrFromStrWithDelim( buf2, "FLOOR", buf3, sizeof( buf3)) != NULL ) {//判断房间号
|
||||
if( NPC_Util_GetStrFromStrWithDelim( buf2, "FLOOR", buf3, sizeof( buf3)) != NULL ) {//判断房间号
|
||||
if( PetTalk_CheckMyFloor( meindex, talkerindex, buf3, 0) == FALSE )continue;
|
||||
}
|
||||
if( NPC_Util_GetStrFromStrWithDelim( buf2, "PET", buf3, sizeof( buf3)) != NULL ) {//判断宠物FREE条件
|
||||
if( NPC_Util_GetStrFromStrWithDelim( buf2, "PET", buf3, sizeof( buf3)) != NULL ) {//判断宠物FREE条件
|
||||
if( PetTalk_CheckFree( meindex, meindex, buf3) != TRUE ) continue;
|
||||
}
|
||||
if( NPC_Util_GetStrFromStrWithDelim( buf2, "FREE", buf3, sizeof( buf3) ) == NULL)continue;
|
||||
if( NPC_ActionPassCheck( meindex, talkerindex, buf3) == FALSE ) continue;//判断玩家FREE条件
|
||||
if( NPC_ActionPassCheck( meindex, talkerindex, buf3) == FALSE ) continue;//判断玩家FREE条件
|
||||
// if( ActionNpc_CheckFree( meindex, talkerindex, buf2, 0) == FALSE ) continue;
|
||||
if( PetTalk_CheckPetEvent( meindex, talkerindex, buf2) == FALSE )continue;
|
||||
FREEs = TRUE; //条件成立
|
||||
FREEs = TRUE; //条件成立
|
||||
strcpy( AllTalk[j++], buf2 );
|
||||
if( j > PETTALK_MAXID-1 ) break;
|
||||
}
|
||||
talkNo = 0;
|
||||
if( FREEs == FALSE) { //如果全部条件都不成立
|
||||
if( FREEs == FALSE) { //如果全部条件都不成立
|
||||
j=0;
|
||||
#ifdef _PET_TALKPRO
|
||||
while( getStringFromIndexWithDelim( pettalktext[tPage].DATA,"OVER",talkNo, buf2, sizeof( buf2) ) != FALSE ){
|
||||
@ -217,12 +217,12 @@ void PET_Talkfunc( int meindex, int talkerindex, char *msg, int color)
|
||||
if( j > 0 ) {
|
||||
strcpy( buf2, AllTalk[ RAND( 0, (j-1) ) ] );
|
||||
if( PetTalk_RunEvent( meindex, talkerindex, buf2) == FALSE ) {
|
||||
sprintf( buf3,"....!");
|
||||
sprintf( buf3,"....!");
|
||||
CHAR_talkToCli( talkerindex, meindex, buf3, color);
|
||||
return;
|
||||
}
|
||||
if( NPC_Util_GetStrFromStrWithDelim( buf2, "TalkMsg", buf3, sizeof( buf3)) == NULL) {
|
||||
//sprintf( buf3,"主人,我们去逛逛吧!");
|
||||
//sprintf( buf3,"主人,我们去逛逛吧!");
|
||||
strcpy( buf3, buf2);
|
||||
}
|
||||
|
||||
@ -301,14 +301,14 @@ BOOL PetTalk_DelItem(int meindex,int talker,char *buf)
|
||||
cnt++;
|
||||
|
||||
LogItem(
|
||||
CHAR_getChar( talker, CHAR_NAME ), /* 平乓仿 */
|
||||
CHAR_getChar( talker, CHAR_NAME ), /* 平乓仿 */
|
||||
CHAR_getChar( talker, CHAR_CDKEY ),
|
||||
#ifdef _add_item_log_name // WON ADD 在item的log中增加item名称
|
||||
#ifdef _add_item_log_name // WON ADD 在item的log中增加item名称
|
||||
itemindex,
|
||||
#else
|
||||
ITEM_getInt( itemindex, ITEM_ID), /* 失奶 丞 寞 */
|
||||
ITEM_getInt( itemindex, ITEM_ID), /* 失奶 丞 寞 */
|
||||
#endif
|
||||
"WarpManDelItem(NPC收道具後传至某点)",
|
||||
"WarpManDelItem(NPC收道具後传至某点)",
|
||||
CHAR_getInt( talker, CHAR_FLOOR),
|
||||
CHAR_getInt( talker, CHAR_X ),
|
||||
CHAR_getInt( talker, CHAR_Y ),
|
||||
@ -326,21 +326,21 @@ BOOL PetTalk_DelItem(int meindex,int talker,char *buf)
|
||||
}
|
||||
}
|
||||
}else{
|
||||
/*--蓟氏分 寞及失奶 丞毛蓟请---*/
|
||||
/*--蓟氏分 寞及失奶 丞毛蓟请---*/
|
||||
for( j = 0 ; j < CHAR_MAXITEMHAVE ; j++){
|
||||
itemindex = CHAR_getItemIndex( talker ,j);
|
||||
|
||||
if( ITEM_CHECKINDEX(itemindex) ){
|
||||
if( atoi( buff3) == ITEM_getInt(itemindex,ITEM_ID)){
|
||||
LogItem(
|
||||
CHAR_getChar( talker, CHAR_NAME ), /* 平乓仿 */
|
||||
CHAR_getChar( talker, CHAR_NAME ), /* 平乓仿 */
|
||||
CHAR_getChar( talker, CHAR_CDKEY ),
|
||||
#ifdef _add_item_log_name // WON ADD 在item的log中增加item名称
|
||||
#ifdef _add_item_log_name // WON ADD 在item的log中增加item名称
|
||||
itemindex,
|
||||
#else
|
||||
ITEM_getInt( itemindex, ITEM_ID), /* 失奶 丞 寞 */
|
||||
ITEM_getInt( itemindex, ITEM_ID), /* 失奶 丞 寞 */
|
||||
#endif
|
||||
"WarpManDelItem(NPC收道具後传至某点)",
|
||||
"WarpManDelItem(NPC收道具後传至某点)",
|
||||
CHAR_getInt( talker,CHAR_FLOOR),
|
||||
CHAR_getInt( talker,CHAR_X ),
|
||||
CHAR_getInt( talker,CHAR_Y ),
|
||||
@ -375,7 +375,7 @@ BOOL PetTalk_AddItem(int meindex, int talker, char *buf)
|
||||
}
|
||||
}
|
||||
if( i == CHAR_MAXITEMHAVE ) {
|
||||
snprintf( msgbuf,sizeof( msgbuf), "主人,你的物品栏已经满了!!");
|
||||
snprintf( msgbuf,sizeof( msgbuf), "主人,你的物品栏已经满了!!");
|
||||
CHAR_talkToCli( talker, meindex, msgbuf, CHAR_COLORWHITE);
|
||||
return FALSE;
|
||||
}
|
||||
@ -394,7 +394,7 @@ BOOL PetTalk_AddItem(int meindex, int talker, char *buf)
|
||||
print ("\n ret error!!");
|
||||
return FALSE;
|
||||
}
|
||||
sprintf( token,"拿到%s",ITEM_getChar( itemindex, ITEM_NAME));
|
||||
sprintf( token,"拿到%s",ITEM_getChar( itemindex, ITEM_NAME));
|
||||
CHAR_talkToCli( talker, -1,token,CHAR_COLORWHITE);
|
||||
|
||||
CHAR_sendItemDataOne( talker, ret);
|
||||
@ -478,7 +478,7 @@ BOOL PetTalk_BSCheck(int meindex,int talker,char* buf)
|
||||
int kosuu,temp=-1,flg=0;
|
||||
char buff1[128],buff3[128];
|
||||
if(strstr( buf, "-") != NULL) {
|
||||
//buff3为抓宠物ID
|
||||
//buff3为抓宠物ID
|
||||
getStringFromIndexWithDelim( buf, "-", 2, buff3, sizeof(buff3));
|
||||
temp = atoi( buff3);
|
||||
getStringFromIndexWithDelim( buf, "-", 1, buff1, sizeof(buff1));
|
||||
@ -659,7 +659,7 @@ BOOL PetTalk_CheckMyPet( int meindex, int talker, int petLv, int flg, int petid)
|
||||
}
|
||||
if( petsel == CHAR_MAXPETHAVE ) {
|
||||
return FALSE;
|
||||
}else { //找到条件宠
|
||||
}else { //找到条件宠
|
||||
if( PetTalk_BigSmallLastCheck( petLv, CHAR_getInt( petindex, CHAR_LV), flg ) == TRUE )
|
||||
return TRUE;
|
||||
}
|
||||
@ -732,11 +732,11 @@ int PET_CleanPetdeletetime( int objmeindex)
|
||||
// CHAR_CharSaveLostPet( pindex, 0);
|
||||
#endif
|
||||
LogPet(
|
||||
"系统",
|
||||
"系统",
|
||||
"Watchfunc",
|
||||
CHAR_getChar( pindex, CHAR_NAME),
|
||||
CHAR_getInt( pindex, CHAR_LV),
|
||||
"timeout_lost(系统清除-地上自由宠)",
|
||||
"timeout_lost(系统清除-地上自由宠)",
|
||||
CHAR_getInt( pindex, CHAR_FLOOR),
|
||||
CHAR_getInt( pindex,CHAR_X ),
|
||||
CHAR_getInt( pindex,CHAR_Y ),
|
||||
@ -761,11 +761,11 @@ void PET_CHECKFreePetIsIt( int petindex)
|
||||
#endif
|
||||
|
||||
LogPet(
|
||||
"系统",
|
||||
"系统",
|
||||
"Watchfunc",
|
||||
CHAR_getChar( petindex, CHAR_NAME),
|
||||
CHAR_getInt( petindex, CHAR_LV),
|
||||
"timeout_lost(系统清除-地上自由宠)",
|
||||
"timeout_lost(系统清除-地上自由宠)",
|
||||
CHAR_getInt( petindex, CHAR_FLOOR),
|
||||
CHAR_getInt( petindex,CHAR_X ),
|
||||
CHAR_getInt( petindex,CHAR_Y ),
|
||||
@ -790,7 +790,7 @@ void PET_Watchfunc( int objmeindex, int objmoveindex, CHAR_ACTION act, int x, in
|
||||
petputtime = CHAR_getInt( petindex, CHAR_PUTPETTIME);
|
||||
|
||||
if( CHAR_getInt( petindex, CHAR_MAILMODE) != CHAR_PETMAIL_NONE) {
|
||||
//宠邮不处理
|
||||
//宠邮不处理
|
||||
}else if( CHAR_getWorkInt( petindex, CHAR_WORKPETFOLLOWMODE) == CHAR_PETFOLLOW_NOW ){
|
||||
if( NowTime.tv_sec >= (petputtime + 60*60) ) {
|
||||
int ownerindex = CHAR_getWorkInt( petindex, CHAR_WORKPLAYERINDEX);
|
||||
@ -798,22 +798,22 @@ void PET_Watchfunc( int objmeindex, int objmoveindex, CHAR_ACTION act, int x, in
|
||||
if( CHAR_pickupFollowPet( ownerindex, petindex ) ) {
|
||||
return;
|
||||
}
|
||||
CHAR_talkToCli( ownerindex, -1, "溜宠太久,宠物走失了!!", CHAR_COLORYELLOW );
|
||||
CHAR_talkToCli( ownerindex, -1, "溜宠太久,宠物走失了!!", CHAR_COLORYELLOW );
|
||||
}
|
||||
#ifdef _PET_LOSTPET
|
||||
CHAR_CharSaveLostPet( petindex, 1);
|
||||
LogPet(
|
||||
"系统",
|
||||
"系统",
|
||||
"Watchfunc",
|
||||
CHAR_getChar( petindex, CHAR_NAME),
|
||||
CHAR_getInt( petindex, CHAR_LV),
|
||||
"timeout_lost(系统扣留-溜宠自由宠)",
|
||||
"timeout_lost(系统扣留-溜宠自由宠)",
|
||||
CHAR_getInt( petindex, CHAR_FLOOR),
|
||||
CHAR_getInt( petindex,CHAR_X ),
|
||||
CHAR_getInt( petindex,CHAR_Y ),
|
||||
CHAR_getChar( petindex, CHAR_UNIQUECODE) // shan 2001/12/14
|
||||
);
|
||||
print("系统扣留-溜宠自由宠:%s\n", CHAR_getUseName( petindex));
|
||||
print("系统扣留-溜宠自由宠:%s\n", CHAR_getUseName( petindex));
|
||||
CHAR_CharaDelete( petindex);
|
||||
#else
|
||||
CHAR_setInt( petindex, CHAR_PUTPETTIME, NowTime.tv_sec);
|
||||
@ -823,7 +823,7 @@ void PET_Watchfunc( int objmeindex, int objmoveindex, CHAR_ACTION act, int x, in
|
||||
CHAR_getChar( pindex, CHAR_CDKEY ),
|
||||
CHAR_getChar( petindex, CHAR_NAME),
|
||||
CHAR_getInt( petindex, CHAR_LV),
|
||||
"timeout_lost(溜宠太久,宠物走失))",
|
||||
"timeout_lost(溜宠太久,宠物走失))",
|
||||
CHAR_getInt( pindex,CHAR_FLOOR),
|
||||
CHAR_getInt( pindex,CHAR_X ),
|
||||
CHAR_getInt( pindex,CHAR_Y ),
|
||||
|
138
char/petmail.c
138
char/petmail.c
@ -21,10 +21,10 @@
|
||||
|
||||
#define PETMAIL_IDLE_RETURNOWNER (60*30)
|
||||
//andy_edit
|
||||
//#define PETMAIL_IDLEDISCARD (60*60) //Syu 修正宠邮等待时间为一小时
|
||||
//#define PETMAIL_IDLEDISCARD (60*60) //Syu 修正宠邮等待时间为一小时
|
||||
#define PETMAIL_IDLEDISCARD (60*3)
|
||||
|
||||
/* petmail 跨星系的等待时间 shan add */
|
||||
/* petmail 跨星系的等待时间 shan add */
|
||||
#define PETMAIL_JS_TIMEOUT (2*60)
|
||||
|
||||
static int PETMAIL_getIdleTime( int index);
|
||||
@ -54,7 +54,7 @@ BOOL PETMAIL_sendPetMail( int cindex, int aindex,
|
||||
int itemindex =-1;
|
||||
int tocharaindex,playernum,i;
|
||||
|
||||
//判断 人物 宠物 道具 对象名片
|
||||
//判断 人物 宠物 道具 对象名片
|
||||
if( !CHAR_CHECKINDEX( cindex) )return FALSE;
|
||||
if( haveitemindex != -1 ) {
|
||||
itemindex = CHAR_getItemIndex( cindex, haveitemindex);
|
||||
@ -64,7 +64,7 @@ BOOL PETMAIL_sendPetMail( int cindex, int aindex,
|
||||
return FALSE;
|
||||
}
|
||||
if(ITEM_getInt( itemindex, ITEM_TIME)>0){
|
||||
CHAR_talkToCli( cindex, -1, "限时道具不可邮寄。", CHAR_COLORYELLOW );
|
||||
CHAR_talkToCli( cindex, -1, "限时道具不可邮寄。", CHAR_COLORYELLOW );
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
@ -80,36 +80,36 @@ BOOL PETMAIL_sendPetMail( int cindex, int aindex,
|
||||
CHAR_SafePassword(cindex);
|
||||
return FALSE;
|
||||
}
|
||||
#ifdef _AVID_TRADETRYBUG //宠物邮件
|
||||
#ifdef _AVID_TRADETRYBUG //宠物邮件
|
||||
if( CHAR_getWorkInt( cindex, CHAR_WORKTRADEMODE) != CHAR_TRADE_FREE ){
|
||||
CHAR_talkToCli( cindex, -1, "交易状态中无法传递宠物邮件。", CHAR_COLORYELLOW );
|
||||
CHAR_talkToCli( cindex, -1, "交易状态中无法传递宠物邮件。", CHAR_COLORYELLOW );
|
||||
return FALSE;
|
||||
}
|
||||
#endif
|
||||
//骑乘
|
||||
//骑乘
|
||||
if (CHAR_getInt( cindex, CHAR_RIDEPET) == havepetindex ){
|
||||
CHAR_talkToCli(cindex, -1, "骑乘中的宠物无法传递宠物邮件!", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli(cindex, -1, "骑乘中的宠物无法传递宠物邮件!", CHAR_COLORYELLOW);
|
||||
return FALSE;
|
||||
}
|
||||
if( CHAR_getWorkInt( cindex, CHAR_WORKBATTLEMODE) != BATTLE_CHARMODE_NONE){
|
||||
CHAR_talkToCli( cindex, -1, "战斗状态中无法传递宠物邮件。", CHAR_COLORYELLOW );
|
||||
CHAR_talkToCli( cindex, -1, "战斗状态中无法传递宠物邮件。", CHAR_COLORYELLOW );
|
||||
return FALSE;
|
||||
}
|
||||
if (CHAR_getInt(petindex, CHAR_PETFAMILY) == 1){
|
||||
CHAR_talkToCli(cindex, -1, "家族守护兽无法传递邮件喔!", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli(cindex, -1, "家族守护兽无法传递邮件喔!", CHAR_COLORYELLOW);
|
||||
return FALSE;
|
||||
}
|
||||
#ifdef _PETMAIL_LV
|
||||
if(getPetMailCf()==1 && CHAR_getInt(petindex, CHAR_LV)>=getPetMailLv()){
|
||||
char bufmsg[256];
|
||||
sprintf(bufmsg,"本线邮寄仅限%d级以下宠物,请勿用珍贵宠物进行邮寄。",getPetMailLv());
|
||||
sprintf(bufmsg,"本线邮寄仅限%d级以下宠物,请勿用珍贵宠物进行邮寄。",getPetMailLv());
|
||||
CHAR_talkToCli(cindex, -1, bufmsg, CHAR_COLORYELLOW);
|
||||
return FALSE;
|
||||
}
|
||||
#endif
|
||||
// Terry add fix can send mail to offline character 2004/2/5
|
||||
if(ae->online == 0){
|
||||
CHAR_talkToCli(cindex, -1, "该玩家不在线上!", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli(cindex, -1, "该玩家不在线上!", CHAR_COLORYELLOW);
|
||||
return FALSE;
|
||||
}
|
||||
playernum = CHAR_getPlayerMaxNum();
|
||||
@ -119,20 +119,20 @@ BOOL PETMAIL_sendPetMail( int cindex, int aindex,
|
||||
strcmp(CHAR_getChar(i,CHAR_NAME),ae->charname) == 0 ) break;
|
||||
}
|
||||
if(i == playernum){
|
||||
CHAR_talkToCli(cindex, -1, "该玩家不在此星球上!", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli(cindex, -1, "该玩家不在此星球上!", CHAR_COLORYELLOW);
|
||||
return FALSE;
|
||||
}
|
||||
// end
|
||||
#ifdef _MAP_TIME
|
||||
if((CHAR_getInt(cindex,CHAR_FLOOR) >= 30017 && CHAR_getInt(cindex,CHAR_FLOOR) <= 30021)){
|
||||
char msgbuf[512];
|
||||
snprintf(msgbuf,sizeof(msgbuf),"此地区不得寄送道具!");
|
||||
snprintf(msgbuf,sizeof(msgbuf),"此地区不得寄送道具!");
|
||||
CHAR_talkToCli(cindex,-1,msgbuf,CHAR_COLORWHITE);
|
||||
return FALSE;
|
||||
}
|
||||
if((CHAR_getInt(i,CHAR_FLOOR) >= 30017 && CHAR_getInt(i,CHAR_FLOOR) <= 30021)){
|
||||
char msgbuf[512];
|
||||
snprintf(msgbuf,sizeof(msgbuf),"对方所在地区不得收寄送道具!");
|
||||
snprintf(msgbuf,sizeof(msgbuf),"对方所在地区不得收寄送道具!");
|
||||
CHAR_talkToCli(cindex,-1,msgbuf,CHAR_COLORWHITE);
|
||||
return FALSE;
|
||||
}
|
||||
@ -142,41 +142,41 @@ BOOL PETMAIL_sendPetMail( int cindex, int aindex,
|
||||
if( ( CHAR_getInt(cindex,CHAR_FLOOR) >= 8200 && CHAR_getInt(cindex,CHAR_FLOOR) <= 8213 ) )
|
||||
{
|
||||
char msgbuf[512];
|
||||
snprintf( msgbuf, sizeof( msgbuf), "英雄战场不得寄送道具!");
|
||||
snprintf( msgbuf, sizeof( msgbuf), "英雄战场不得寄送道具!");
|
||||
CHAR_talkToCli( cindex, -1, msgbuf, CHAR_COLORWHITE);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
#ifdef _PET_LIMITLEVEL
|
||||
if( CHAR_getInt( petindex, CHAR_LIMITLEVEL) > 0 ) {
|
||||
CHAR_talkToCli(cindex, -1, "特殊宠物不能传递邮件喔!", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli(cindex, -1, "特殊宠物不能传递邮件喔!", CHAR_COLORYELLOW);
|
||||
return FALSE;
|
||||
}
|
||||
#endif
|
||||
//如果是被限定的不可以邮寄的道具那么不可以寄
|
||||
//如果是被限定的不可以邮寄的道具那么不可以寄
|
||||
#ifdef _PETITEM__AMOI_E
|
||||
if(ITEM_NOT_MAIL & ITEM_getInt(itemindex, ITEM_TYPEOFITEM)){
|
||||
char buf[256];
|
||||
sprintf( buf, "%s是不可以邮寄的哦!~", ITEM_getChar( itemindex, ITEM_NAME) );
|
||||
sprintf( buf, "%s是不可以邮寄的哦!~", ITEM_getChar( itemindex, ITEM_NAME) );
|
||||
CHAR_talkToCli( cindex, -1, buf, CHAR_COLORRED);
|
||||
return FALSE;
|
||||
}
|
||||
#endif
|
||||
#ifdef _PETMAIL_DEFNUMS
|
||||
if( CHAR_getWorkInt( cindex, CHAR_PETMAILNUMS) > 6 ){
|
||||
CHAR_talkToCli(cindex, -1, "邮件中宠物过多,暂时无法传递宠物邮件!", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli(cindex, -1, "邮件中宠物过多,暂时无法传递宠物邮件!", CHAR_COLORYELLOW);
|
||||
return FALSE;
|
||||
}else if( PETMAIL_CheckIsMyOffmsg( cindex, ae->cdkey, ae->charname) > 10 ){
|
||||
CHAR_talkToCli(cindex, -1, "收件者目前邮件宠物超过10封,暂时无法传递宠物邮件!", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli(cindex, -1, "收件者目前邮件宠物超过10封,暂时无法传递宠物邮件!", CHAR_COLORYELLOW);
|
||||
return FALSE;
|
||||
}else if( CHAR_getWorkInt( cindex, CHAR_PETMAILSENDTIME) > (int)time( NULL)){
|
||||
char Mess1[256];
|
||||
sprintf( Mess1,"需等待%d秒才能再次寄送宠物邮件!",
|
||||
sprintf( Mess1,"需等待%d秒才能再次寄送宠物邮件!",
|
||||
(int)time( NULL) - CHAR_getWorkInt( cindex, CHAR_PETMAILSENDTIME));
|
||||
CHAR_talkToCli( cindex, -1, Mess1, CHAR_COLORYELLOW);
|
||||
return FALSE;
|
||||
}else if( PetMailTotalnums >= PETMAIL_DEFTOTALNUM ){
|
||||
CHAR_talkToCli(cindex, -1, "目前系统邮件过多,请稍後再寄。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli(cindex, -1, "目前系统邮件过多,请稍後再寄。", CHAR_COLORYELLOW);
|
||||
return FALSE;
|
||||
}else{
|
||||
int nums = CHAR_getWorkInt( cindex, CHAR_PETMAILNUMS);
|
||||
@ -201,9 +201,9 @@ BOOL PETMAIL_sendPetMail( int cindex, int aindex,
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
#ifdef _FIX_PETMAIL2 // WON ADD 修正宠邮2
|
||||
#ifdef _FIX_PETMAIL2 // WON ADD 修正宠邮2
|
||||
if( !PET_dropPetFLXY( cindex, havepetindex, PETMAIL_SPOOLFLOOR, PETMAIL_SPOOLX,PETMAIL_SPOOLY) ){
|
||||
CHAR_talkToCli( cindex, -1, "宠物邮件失败", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( cindex, -1, "宠物邮件失败", CHAR_COLORYELLOW);
|
||||
return FALSE;
|
||||
}
|
||||
#endif
|
||||
@ -222,13 +222,13 @@ BOOL PETMAIL_sendPetMail( int cindex, int aindex,
|
||||
CHAR_setInt( petindex, CHAR_PETMAILFROMX, CHAR_getInt( cindex, CHAR_X));
|
||||
CHAR_setInt( petindex, CHAR_PETMAILFROMY,CHAR_getInt( cindex, CHAR_Y));
|
||||
|
||||
//#ifdef _WON_PET_MAIL_LOG // WON ADD 增加寄宠邮的 LOG
|
||||
//#ifdef _WON_PET_MAIL_LOG // WON ADD 增加寄宠邮的 LOG
|
||||
// LogPet(
|
||||
// CHAR_getChar( cindex, CHAR_NAME ),
|
||||
// CHAR_getChar( cindex, CHAR_CDKEY ),
|
||||
// CHAR_getChar( petindex, CHAR_NAME),
|
||||
// CHAR_getInt( petindex, CHAR_LV),
|
||||
// "Pet_Send_Mail(寄宠邮)",
|
||||
// "Pet_Send_Mail(寄宠邮)",
|
||||
// CHAR_getInt( cindex,CHAR_FLOOR),
|
||||
// CHAR_getInt( cindex,CHAR_X ),
|
||||
// CHAR_getInt( cindex,CHAR_Y ),
|
||||
@ -243,7 +243,7 @@ BOOL PETMAIL_sendPetMail( int cindex, int aindex,
|
||||
CHAR_getChar( cindex, CHAR_NAME ),
|
||||
CHAR_getChar( cindex, CHAR_CDKEY ),
|
||||
itemindex,
|
||||
"pm_have(宠邮->寄送的道具)",
|
||||
"pm_have(宠邮->寄送的道具)",
|
||||
CHAR_getInt( cindex,CHAR_FLOOR),
|
||||
CHAR_getInt( cindex,CHAR_X ),
|
||||
CHAR_getInt( cindex,CHAR_Y ),
|
||||
@ -256,7 +256,7 @@ BOOL PETMAIL_sendPetMail( int cindex, int aindex,
|
||||
{
|
||||
char token[256];
|
||||
tocharaindex = PETMAIL_CheckPlayerExist( petindex, 0);
|
||||
sprintf( token, "寄送宠物邮件(%s)给%s。",
|
||||
sprintf( token, "寄送宠物邮件(%s)给%s。",
|
||||
CHAR_getUseName( petindex), CHAR_getUseName( tocharaindex) );
|
||||
CHAR_talkToCli( cindex, -1, token, CHAR_COLORYELLOW);
|
||||
}
|
||||
@ -423,7 +423,7 @@ BOOL storePetmail( void)
|
||||
char escapebuf1[ 64],escapebuf2[ 64];
|
||||
int i;
|
||||
|
||||
/* 白央奶伙 毛菲户月 */
|
||||
/* 白央奶伙 毛菲户月 */
|
||||
snprintf( filename ,sizeof( filename ) ,"%s/%s" ,
|
||||
getStoredir(), PETMAILOFFMSGFILE);
|
||||
fp = fopen( filename , "wt" );
|
||||
@ -485,16 +485,16 @@ void PETMAIL_Loopfunc( int index)
|
||||
case CHAR_PETMAIL_IDLE2:
|
||||
PETMAIL_IdleProc2( index);
|
||||
break;
|
||||
case CHAR_PETMAIL_RETURNWAIT://回来等待
|
||||
case CHAR_PETMAIL_RETURNWAIT://回来等待
|
||||
PETMAIL_ReturnWait( index);
|
||||
break;
|
||||
case CHAR_PETMAIL_IDLE3:
|
||||
PETMAIL_IdleProc3( index);
|
||||
break;
|
||||
case CHAR_PETMAIL_IDLE4://寻找主人
|
||||
case CHAR_PETMAIL_IDLE4://寻找主人
|
||||
PETMAIL_IdleProc4( index);
|
||||
break;
|
||||
case CHAR_PETMAIL_IDLE5: //超过时间无法找到主人
|
||||
case CHAR_PETMAIL_IDLE5: //超过时间无法找到主人
|
||||
PETMAIL_IdleProc5( index);
|
||||
break;
|
||||
default:
|
||||
@ -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;
|
||||
@ -542,8 +542,8 @@ static void PETMAIL_sendPetmail( int index, int tocharaindex)
|
||||
char msgbuf[512];
|
||||
|
||||
snprintf( msgbuf, sizeof( msgbuf),
|
||||
"%s的%s 终於来了!"
|
||||
"由於对方没有您的名片,所以信件被退回了。",
|
||||
"%s的%s 终於来了!"
|
||||
"由於对方没有您的名片,所以信件被退回了。",
|
||||
CHAR_getChar( index, CHAR_OWNERCHARANAME),
|
||||
CHAR_getUseName( index));
|
||||
CHAR_talkToCli( tocharaindex, -1, msgbuf, CHAR_COLORWHITE);
|
||||
@ -553,7 +553,7 @@ static void PETMAIL_sendPetmail( int index, int tocharaindex)
|
||||
CHAR_getInt(tocharaindex,CHAR_FLOOR) <= 8213 ){
|
||||
char msgbuf[512];
|
||||
snprintf( msgbuf, sizeof( msgbuf),
|
||||
"英雄战场不得寄送道具!" );
|
||||
"英雄战场不得寄送道具!" );
|
||||
CHAR_talkToCli( tocharaindex, -1, msgbuf, CHAR_COLORWHITE);
|
||||
}
|
||||
else {
|
||||
@ -570,7 +570,7 @@ static void PETMAIL_sendPetmail( int index, int tocharaindex)
|
||||
CHAR_getChar( tocharaindex, CHAR_NAME ),
|
||||
CHAR_getChar( tocharaindex, CHAR_CDKEY ),
|
||||
itemindex,
|
||||
"pm_putground(宠邮->道具栏已满,放置地上)",
|
||||
"pm_putground(宠邮->道具栏已满,放置地上)",
|
||||
CHAR_getInt( index,CHAR_FLOOR),
|
||||
CHAR_getInt( index,CHAR_X ),
|
||||
CHAR_getInt( index,CHAR_Y ),
|
||||
@ -587,7 +587,7 @@ static void PETMAIL_sendPetmail( int index, int tocharaindex)
|
||||
CHAR_getChar( tocharaindex, CHAR_NAME ),
|
||||
CHAR_getChar( tocharaindex, CHAR_CDKEY ),
|
||||
itemindex,
|
||||
"pm_getitem(宠邮->收到的道具)",
|
||||
"pm_getitem(宠邮->收到的道具)",
|
||||
CHAR_getInt( index,CHAR_FLOOR),
|
||||
CHAR_getInt( index,CHAR_X ),
|
||||
CHAR_getInt( index,CHAR_Y ),
|
||||
@ -635,9 +635,9 @@ static void PETMAIL_IdleProc1( int index)
|
||||
if( !CHAR_CHECKINDEX( tocharaindex) ) {
|
||||
warp = TRUE;
|
||||
}else {
|
||||
if( CHAR_getInt( tocharaindex, CHAR_FLOOR) == 8215 ){//客服活动 andy
|
||||
if( CHAR_getInt( tocharaindex, CHAR_FLOOR) == 8215 ){//客服活动 andy
|
||||
warp = TRUE;
|
||||
}else if( CHAR_getWorkInt( tocharaindex, CHAR_WORKTRADEMODE) != CHAR_TRADE_FREE ){//交易中不收邮件
|
||||
}else if( CHAR_getWorkInt( tocharaindex, CHAR_WORKTRADEMODE) != CHAR_TRADE_FREE ){//交易中不收邮件
|
||||
warp = TRUE;
|
||||
}else if( CHAR_getWorkInt( tocharaindex, CHAR_WORKBATTLEMODE) != BATTLE_CHARMODE_NONE ){
|
||||
int battleindex = CHAR_getWorkInt( tocharaindex, CHAR_WORKBATTLEINDEX );
|
||||
@ -692,8 +692,8 @@ static void PETMAIL_IdleProc2( int index)
|
||||
int cnt;
|
||||
tocharaindex = PETMAIL_CheckPlayerExist( index, 0);
|
||||
if( tocharaindex != -1 ) {
|
||||
if( CHAR_getInt( tocharaindex, CHAR_FLOOR) == 8215 ){//客服活动 andy
|
||||
}else if( CHAR_getWorkInt( tocharaindex, CHAR_WORKTRADEMODE) != CHAR_TRADE_FREE ){//交易中不收邮件
|
||||
if( CHAR_getInt( tocharaindex, CHAR_FLOOR) == 8215 ){//客服活动 andy
|
||||
}else if( CHAR_getWorkInt( tocharaindex, CHAR_WORKTRADEMODE) != CHAR_TRADE_FREE ){//交易中不收邮件
|
||||
}else if( CHAR_getWorkInt( tocharaindex, CHAR_WORKBATTLEMODE) != BATTLE_CHARMODE_NONE){
|
||||
}else {
|
||||
int fl, x, y, ch_x, ch_y;
|
||||
@ -801,12 +801,12 @@ static void PETMAIL_IdleProc4( int index)
|
||||
{
|
||||
int tocharaindex;
|
||||
int cnt;
|
||||
tocharaindex = PETMAIL_CheckPlayerExist( index, 1);//寻找主人
|
||||
tocharaindex = PETMAIL_CheckPlayerExist( index, 1);//寻找主人
|
||||
if( tocharaindex != -1 ) {
|
||||
if( CHAR_getWorkInt( tocharaindex, CHAR_WORKBATTLEMODE) == BATTLE_CHARMODE_NONE &&
|
||||
CHAR_getWorkInt( tocharaindex, CHAR_WORKTRADEMODE) == CHAR_TRADE_FREE ){
|
||||
|
||||
int fl, x, y, ch_x, ch_y;//回到主人身边
|
||||
int fl, x, y, ch_x, ch_y;//回到主人身边
|
||||
|
||||
fl = CHAR_getInt( tocharaindex, CHAR_FLOOR);
|
||||
ch_x = CHAR_getInt( tocharaindex, CHAR_X);
|
||||
@ -827,20 +827,20 @@ static void PETMAIL_IdleProc4( int index)
|
||||
PETMAIL_returnMail( index, tocharaindex);
|
||||
}
|
||||
}else {
|
||||
if( NowTime.tv_sec > t + PETMAIL_IDLE_RETURNOWNER ) {//检查等待主人时间
|
||||
if( NowTime.tv_sec > t + PETMAIL_IDLE_RETURNOWNER ) {//检查等待主人时间
|
||||
int itemindex;
|
||||
CHAR_warpToSpecificPoint( index, //回到原先主人所在座标
|
||||
CHAR_warpToSpecificPoint( index, //回到原先主人所在座标
|
||||
CHAR_getInt( index, CHAR_PETMAILFROMFLOOR),
|
||||
CHAR_getInt( index, CHAR_PETMAILFROMX),
|
||||
CHAR_getInt( index, CHAR_PETMAILFROMY));
|
||||
|
||||
CHAR_setInt( index, CHAR_MAILMODE, CHAR_PETMAIL_IDLE5);//改变宠邮状态
|
||||
CHAR_setInt( index, CHAR_MAILMODE, CHAR_PETMAIL_IDLE5);//改变宠邮状态
|
||||
CHAR_setInt( index, CHAR_LOOPINTERVAL, PETMAIL_LOOPINTERVAL2);
|
||||
CHAR_setInt( index, CHAR_PETMAILIDLETIME, NowTime.tv_sec);
|
||||
if( CHAR_getInt( index, CHAR_PETMAILIDLETIME) != -1 ) {
|
||||
PETMAIL_deleteOffmsg( CHAR_getInt( index, CHAR_PETMAILBUFINDEX));
|
||||
}
|
||||
itemindex = CHAR_getItemIndex( index, CHAR_STARTITEMARRAY);//删除附带道具
|
||||
itemindex = CHAR_getItemIndex( index, CHAR_STARTITEMARRAY);//删除附带道具
|
||||
if( ITEM_CHECKINDEX( itemindex ) ) {
|
||||
CHAR_DropItem( index, CHAR_STARTITEMARRAY);
|
||||
|
||||
@ -848,7 +848,7 @@ static void PETMAIL_IdleProc4( int index)
|
||||
CHAR_getChar( index, CHAR_OWNERCHARANAME ),
|
||||
CHAR_getChar( index, CHAR_OWNERCDKEY ),
|
||||
itemindex,
|
||||
"pm_returntimeout(宠邮->逾时删除道具)",
|
||||
"pm_returntimeout(宠邮->逾时删除道具)",
|
||||
CHAR_getInt( index,CHAR_FLOOR),
|
||||
CHAR_getInt( index,CHAR_X ),
|
||||
CHAR_getInt( index,CHAR_Y ),
|
||||
@ -871,11 +871,11 @@ static void PETMAIL_IdleProc5( int index)
|
||||
CHAR_setInt( index, CHAR_MAILMODE, CHAR_PETMAIL_NONE);
|
||||
CHAR_setInt( index, CHAR_PETMAILIDLETIME, 0);
|
||||
|
||||
#ifdef _FIX_PETMAIL // WON ADD 修正宠邮
|
||||
#ifdef _FIX_PETMAIL // WON ADD 修正宠邮
|
||||
CHAR_setInt( index, CHAR_PUTPETTIME, NowTime.tv_sec );
|
||||
#endif
|
||||
#ifdef _PETMAIL_DEFNUMS
|
||||
PETMAIL_delPetMailTotalnums( 1); //M PET 变自由宠
|
||||
PETMAIL_delPetMailTotalnums( 1); //M PET 变自由宠
|
||||
if( PetMailTotalnums < 0 ) PetMailTotalnums = 0;
|
||||
#endif
|
||||
ch = CHAR_getCharPointer( index);
|
||||
@ -887,17 +887,17 @@ static void PETMAIL_IdleProc5( int index)
|
||||
#ifdef _PET_LOSTPET
|
||||
CHAR_CharSaveLostPet( index, 2);
|
||||
LogPet(
|
||||
"系统",
|
||||
"系统",
|
||||
"Watchfunc",
|
||||
CHAR_getChar( index, CHAR_NAME),
|
||||
CHAR_getInt( index, CHAR_LV),
|
||||
"timeout_lost(系统扣留-宠邮自由宠)",
|
||||
"timeout_lost(系统扣留-宠邮自由宠)",
|
||||
CHAR_getInt( index, CHAR_FLOOR),
|
||||
CHAR_getInt( index,CHAR_X ),
|
||||
CHAR_getInt( index,CHAR_Y ),
|
||||
CHAR_getChar( index, CHAR_UNIQUECODE) // shan 2001/12/14
|
||||
);
|
||||
print("系统扣留-宠邮自由宠:%s\n", CHAR_getUseName( index));
|
||||
print("系统扣留-宠邮自由宠:%s\n", CHAR_getUseName( index));
|
||||
CHAR_CharaDelete( index);
|
||||
#else
|
||||
LogPet(
|
||||
@ -905,7 +905,7 @@ static void PETMAIL_IdleProc5( int index)
|
||||
CHAR_getChar( index, CHAR_OWNERCDKEY ),
|
||||
CHAR_getChar( index, CHAR_NAME),
|
||||
CHAR_getInt( index, CHAR_LV),
|
||||
"FreePet(宠邮变回自由宠)",
|
||||
"FreePet(宠邮变回自由宠)",
|
||||
CHAR_getInt( index,CHAR_FLOOR),
|
||||
CHAR_getInt( index,CHAR_X ),
|
||||
CHAR_getInt( index,CHAR_Y ),
|
||||
@ -952,7 +952,7 @@ static void PETMAIL_returnMail( int index, int tocharaindex)
|
||||
CHAR_getChar( tocharaindex, CHAR_NAME ),
|
||||
CHAR_getChar( tocharaindex, CHAR_CDKEY ),
|
||||
itemindex,
|
||||
"pm_returnputground(宠邮->道具已满将道具放置地上)",
|
||||
"pm_returnputground(宠邮->道具已满将道具放置地上)",
|
||||
CHAR_getInt( index,CHAR_FLOOR),
|
||||
CHAR_getInt( index,CHAR_X ),
|
||||
CHAR_getInt( index,CHAR_Y ),
|
||||
@ -976,14 +976,14 @@ static void PETMAIL_returnMail( int index, int tocharaindex)
|
||||
#endif
|
||||
if( CHAR_getInt( index, CHAR_PETMAILBUFINDEX) != -1 ) {
|
||||
snprintf( msgbuf, sizeof( msgbuf),
|
||||
"%s 回来了!"
|
||||
"似乎无法寄送信件。",
|
||||
"%s 回来了!"
|
||||
"似乎无法寄送信件。",
|
||||
CHAR_getUseName( index));
|
||||
CHAR_talkToCli( tocharaindex, -1, msgbuf, CHAR_COLORWHITE);
|
||||
PETMAIL_deleteOffmsg( CHAR_getInt( index, CHAR_PETMAILBUFINDEX));
|
||||
}else {
|
||||
snprintf( msgbuf, sizeof( msgbuf),
|
||||
"%s 回来了!", CHAR_getUseName( index));
|
||||
"%s 回来了!", CHAR_getUseName( index));
|
||||
CHAR_talkToCli( tocharaindex, -1, msgbuf, CHAR_COLORWHITE);
|
||||
}
|
||||
|
||||
@ -1002,9 +1002,9 @@ void CHAR_AutoPickupMailPet( int charaindex, int petindex )
|
||||
char category[3];
|
||||
Char *ch;
|
||||
if( !CHAR_CHECKINDEX( charaindex ) ) return;
|
||||
#ifdef _AVID_TRADETRYBUG //丢出宠物
|
||||
#ifdef _AVID_TRADETRYBUG //丢出宠物
|
||||
if( CHAR_getWorkInt( charaindex, CHAR_WORKTRADEMODE) != CHAR_TRADE_FREE ){
|
||||
CHAR_talkToCli( charaindex, -1, "交易状态中无法自动拾回邮件宠物!", CHAR_COLORYELLOW );
|
||||
CHAR_talkToCli( charaindex, -1, "交易状态中无法自动拾回邮件宠物!", CHAR_COLORYELLOW );
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
@ -1012,14 +1012,14 @@ void CHAR_AutoPickupMailPet( int charaindex, int petindex )
|
||||
havepetindex = CHAR_getCharPetElement( charaindex);
|
||||
if( havepetindex == -1 ) {
|
||||
|
||||
CHAR_talkToCli(charaindex,-1,"宠物栏已满!无法自动拾回邮件宠物!",CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli(charaindex,-1,"宠物栏已满!无法自动拾回邮件宠物!",CHAR_COLORYELLOW);
|
||||
// WON ADD
|
||||
LogPet(
|
||||
CHAR_getChar( charaindex, CHAR_NAME ),
|
||||
CHAR_getChar( charaindex, CHAR_CDKEY ),
|
||||
CHAR_getChar( petindex, CHAR_NAME),
|
||||
CHAR_getInt( petindex, CHAR_LV),
|
||||
"Pet_Full(宠物栏已满,无法拾起宠物)",
|
||||
"Pet_Full(宠物栏已满,无法拾起宠物)",
|
||||
CHAR_getInt( charaindex,CHAR_FLOOR),
|
||||
CHAR_getInt( charaindex,CHAR_X ),
|
||||
CHAR_getInt( charaindex,CHAR_Y ),
|
||||
@ -1046,7 +1046,7 @@ void CHAR_AutoPickupMailPet( int charaindex, int petindex )
|
||||
CHAR_setInt( petindex, CHAR_PUTPETTIME, 0);
|
||||
CHAR_setWorkInt( petindex, CHAR_WORKOBJINDEX, -1);
|
||||
CHAR_setInt( petindex, CHAR_MAILMODE, CHAR_PETMAIL_NONE);
|
||||
PETMAIL_delPetMailTotalnums( 1); // M PET 自动捡起
|
||||
PETMAIL_delPetMailTotalnums( 1); // M PET 自动捡起
|
||||
|
||||
strcpysafe( ch->charfunctable[CHAR_LOOPFUNC].string,
|
||||
sizeof( ch->charfunctable[CHAR_LOOPFUNC]),"");
|
||||
@ -1062,7 +1062,7 @@ void CHAR_AutoPickupMailPet( int charaindex, int petindex )
|
||||
if( strlen( p) == 0 ) {
|
||||
p = CHAR_getChar( petindex, CHAR_NAME);
|
||||
}
|
||||
snprintf( mesg,sizeof(mesg), "拾回邮件宠物 %s", p);
|
||||
snprintf( mesg,sizeof(mesg), "拾回邮件宠物 %s", p);
|
||||
CHAR_talkToCli(charaindex,-1,mesg,CHAR_COLORYELLOW);
|
||||
}
|
||||
// LogPet(
|
||||
@ -1070,7 +1070,7 @@ void CHAR_AutoPickupMailPet( int charaindex, int petindex )
|
||||
// CHAR_getChar( charaindex, CHAR_CDKEY ),
|
||||
// CHAR_getChar( petindex, CHAR_NAME),
|
||||
// CHAR_getInt( petindex, CHAR_LV),
|
||||
// "PickupMailPet(自动收回邮宠)",
|
||||
// "PickupMailPet(自动收回邮宠)",
|
||||
// CHAR_getInt( charaindex,CHAR_FLOOR),
|
||||
// CHAR_getInt( charaindex,CHAR_X ),
|
||||
// CHAR_getInt( charaindex,CHAR_Y ),
|
||||
|
70
char/skill.c
70
char/skill.c
@ -7,7 +7,7 @@
|
||||
#include "util.h"
|
||||
#include "char.h"
|
||||
|
||||
#ifdef _CHAR_PROFESSION // WON ADD 人物职业
|
||||
#ifdef _CHAR_PROFESSION // WON ADD 人物职业
|
||||
#include "battle.h"
|
||||
#include "profession_skill.h"
|
||||
#endif
|
||||
@ -115,7 +115,7 @@ BOOL SKILL_makeSkillFromStringToArg( char* src, Skill* sk )
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
#ifdef _CHAR_PROFESSION // WON ADD 人物职业
|
||||
#ifdef _CHAR_PROFESSION // WON ADD 人物职业
|
||||
INLINE int SKILL_getRealInt( Skill* skill, int element)
|
||||
{
|
||||
return skill->data[element];
|
||||
@ -139,7 +139,7 @@ INLINE int SKILL_setInt( Skill* skill, int element, int new)
|
||||
return buf;
|
||||
}
|
||||
|
||||
#ifndef _PROFESSION_SKILL // WON ADD 人物职业技能
|
||||
#ifndef _PROFESSION_SKILL // WON ADD 人物职业技能
|
||||
static void SKILL_setitemlimit( int charaindex, Skill* sk );
|
||||
static void SKILL_setmerchant( int charaindex, Skill* sk );
|
||||
static void SKILL_setlevel( int charaindex, Skill* sk );
|
||||
@ -147,7 +147,7 @@ static void SKILL_setlevel( int charaindex, Skill* sk );
|
||||
|
||||
static SKILL_table SKILL_tbl[]={
|
||||
|
||||
#ifdef _PROFESSION_SKILL // WON ADD 人物职业技能
|
||||
#ifdef _PROFESSION_SKILL // WON ADD 人物职业技能
|
||||
{ 100, NULL}, // 1
|
||||
{ 100, NULL},
|
||||
{ 100, NULL},
|
||||
@ -179,7 +179,7 @@ static SKILL_table SKILL_tbl[]={
|
||||
};
|
||||
|
||||
|
||||
#ifndef _PROFESSION_SKILL // WON ADD 人物职业技能
|
||||
#ifndef _PROFESSION_SKILL // WON ADD 人物职业技能
|
||||
static void SKILL_setitemlimit( int charaindex, Skill* sk )
|
||||
{
|
||||
static int itemlimit[9]={
|
||||
@ -265,17 +265,17 @@ static void SKILL_setlevel( int charaindex, Skill* sk )
|
||||
static char ITEM_statusStringBuffer[SKILLSTRINGBUFSIZ];
|
||||
|
||||
|
||||
#ifdef _CHAR_PROFESSION // WON ADD 人物职业
|
||||
#ifdef _CHAR_PROFESSION // WON ADD 人物职业
|
||||
char* SKILL_makeSkillStatusString( Skill* skill, int charaindex, int skill_num )
|
||||
{
|
||||
int skillindex=SKILL_getInt( skill,SKILL_IDENTITY);
|
||||
int Pskill=PROFESSION_SKILL_getskillArray( skillindex);
|
||||
int skill_level=0, cost_mp=0;
|
||||
|
||||
// 人物技能等级
|
||||
// 人物技能等级
|
||||
skill_level = SKILL_getInt( skill, SKILL_LEVEL);
|
||||
|
||||
// 耗费MP
|
||||
// 耗费MP
|
||||
if( (cost_mp = PROFESSION_MAGIC_COST_MP( charaindex, skill_num )) == -1 )
|
||||
cost_mp = PROFESSION_SKILL_getInt( Pskill, PROFESSION_SKILL_COST_MP);
|
||||
|
||||
@ -408,8 +408,8 @@ void SKILL_skillEffect( int charaindex )
|
||||
|
||||
|
||||
|
||||
#ifdef _CHAR_PROFESSION // WON ADD 人物职业
|
||||
// 取使用魔法耗费MP
|
||||
#ifdef _CHAR_PROFESSION // WON ADD 人物职业
|
||||
// 取使用魔法耗费MP
|
||||
int PROFESSION_MAGIC_COST_MP( int charaindex, int skill_num )
|
||||
{
|
||||
int skill_level=0, dec_mp=0;
|
||||
@ -417,40 +417,40 @@ int PROFESSION_MAGIC_COST_MP( int charaindex, int skill_num )
|
||||
char *skill_name;
|
||||
CHAR_HaveSkill* hskill;
|
||||
|
||||
// 人物技能
|
||||
// 人物技能
|
||||
skillid = CHAR_getCharSkill( charaindex, skill_num);
|
||||
Pskillid = PROFESSION_SKILL_getskillArray( skillid);
|
||||
if( Pskillid == -1 ) return FALSE;
|
||||
|
||||
// 技能名称
|
||||
// 技能名称
|
||||
skill_name = PROFESSION_SKILL_getChar( Pskillid, PROFESSION_SKILL_FUNCNAME);
|
||||
|
||||
// 技能等级
|
||||
// 技能等级
|
||||
hskill = CHAR_getCharHaveSkill( charaindex, skill_num );
|
||||
skill_level = SKILL_getInt( &hskill->skill, SKILL_LEVEL);
|
||||
skill_level = PROFESSION_CHANGE_SKILL_LEVEL_M( skill_level );
|
||||
|
||||
if( (strcmp( skill_name, "PROFESSION_VOLCANO_SPRINGS" )) == 0 ){ // 火山泉
|
||||
if( (strcmp( skill_name, "PROFESSION_VOLCANO_SPRINGS" )) == 0 ){ // 火山泉
|
||||
if( skill_level >= 10 ) dec_mp = 35;
|
||||
else if( skill_level >= 7 ) dec_mp = 30;
|
||||
else if( skill_level >= 5 ) dec_mp = 20;
|
||||
else if( skill_level >= 3 ) dec_mp = 15;
|
||||
else dec_mp = 10;
|
||||
}else
|
||||
if( (strcmp( skill_name, "PROFESSION_FIRE_BALL" )) == 0 ){ // 火星球
|
||||
if( (strcmp( skill_name, "PROFESSION_FIRE_BALL" )) == 0 ){ // 火星球
|
||||
if( skill_level >= 9 ) dec_mp = 50;
|
||||
else if( skill_level >= 7 ) dec_mp = 45;
|
||||
else if( skill_level >= 5 ) dec_mp = 40;
|
||||
else if( skill_level >= 3 ) dec_mp = 35;
|
||||
else dec_mp = 30;
|
||||
}else
|
||||
if( (strcmp( skill_name, "PROFESSION_SUMMON_THUNDER" )) == 0 ){ // 召雷术
|
||||
if( (strcmp( skill_name, "PROFESSION_SUMMON_THUNDER" )) == 0 ){ // 召雷术
|
||||
if( skill_level >= 8 ) dec_mp = 30;
|
||||
else if( skill_level >= 5 ) dec_mp = 25;
|
||||
else if( skill_level >= 3) dec_mp = 20;
|
||||
else dec_mp = 10;
|
||||
}else
|
||||
if( (strcmp( skill_name, "PROFESSION_CURRENT" )) == 0 ){ // 电流术
|
||||
if( (strcmp( skill_name, "PROFESSION_CURRENT" )) == 0 ){ // 电流术
|
||||
#ifdef _PROFESSION_ADDSKILL
|
||||
if( skill_level >= 10 ) dec_mp = 100;
|
||||
else if( skill_level > 9 ) dec_mp = 90;
|
||||
@ -468,7 +468,7 @@ int PROFESSION_MAGIC_COST_MP( int charaindex, int skill_num )
|
||||
else dec_mp = 30;
|
||||
#endif
|
||||
}else
|
||||
if( (strcmp( skill_name, "PROFESSION_STORM" )) == 0 ){ // 暴风雨
|
||||
if( (strcmp( skill_name, "PROFESSION_STORM" )) == 0 ){ // 暴风雨
|
||||
#ifdef _PROFESSION_ADDSKILL
|
||||
if( skill_level > 8 ) dec_mp = 50;
|
||||
else if( skill_level > 6 ) dec_mp = 45;
|
||||
@ -482,12 +482,12 @@ int PROFESSION_MAGIC_COST_MP( int charaindex, int skill_num )
|
||||
else dec_mp = 50;
|
||||
#endif
|
||||
}else
|
||||
if( (strcmp( skill_name, "PROFESSION_ICE_ARROW" )) == 0 ){ // 冰箭术
|
||||
if( (strcmp( skill_name, "PROFESSION_ICE_ARROW" )) == 0 ){ // 冰箭术
|
||||
if( skill_level >= 8) dec_mp = 20;
|
||||
else if( skill_level >= 4 ) dec_mp = 15;
|
||||
else dec_mp = 10;
|
||||
}else
|
||||
if( (strcmp( skill_name, "PROFESSION_ICE_CRACK" )) == 0 ){ // 冰爆术
|
||||
if( (strcmp( skill_name, "PROFESSION_ICE_CRACK" )) == 0 ){ // 冰爆术
|
||||
#ifdef _PROFESSION_ADDSKILL
|
||||
if( skill_level >= 10 ) dec_mp = 80;
|
||||
else if( skill_level > 8 ) dec_mp = 70;
|
||||
@ -503,61 +503,61 @@ int PROFESSION_MAGIC_COST_MP( int charaindex, int skill_num )
|
||||
else dec_mp = 30;
|
||||
#endif
|
||||
}else
|
||||
if( (strcmp( skill_name, "PROFESSION_DOOM" )) == 0 ){ // 世界末日
|
||||
if( (strcmp( skill_name, "PROFESSION_DOOM" )) == 0 ){ // 世界末日
|
||||
if( skill_level > 8 ) dec_mp = 150;
|
||||
else if( skill_level > 4 ) dec_mp = 100;
|
||||
else dec_mp = 50;
|
||||
}else
|
||||
if( (strcmp( skill_name, "PROFESSION_FIRE_SPEAR" )) == 0 ){ // 火龙枪
|
||||
if( (strcmp( skill_name, "PROFESSION_FIRE_SPEAR" )) == 0 ){ // 火龙枪
|
||||
if( skill_level > 8 ) dec_mp = 80;
|
||||
else if( skill_level > 6 ) dec_mp = 70;
|
||||
else if( skill_level > 4 ) dec_mp = 60;
|
||||
else if( skill_level > 2 ) dec_mp = 40;
|
||||
else dec_mp = 30;
|
||||
}else
|
||||
if( (strcmp( skill_name, "PROFESSION_BLOOD_WORMS" )) == 0 ){ // 嗜血蛊
|
||||
if( (strcmp( skill_name, "PROFESSION_BLOOD_WORMS" )) == 0 ){ // 嗜血蛊
|
||||
if( skill_level >= 10 ) dec_mp = 15;
|
||||
else if( skill_level >= 5 ) dec_mp = 10;
|
||||
else dec_mp = 5;
|
||||
}else
|
||||
if( (strcmp( skill_name, "PROFESSION_SIGN" )) == 0 ){ // 一针见血
|
||||
if( (strcmp( skill_name, "PROFESSION_SIGN" )) == 0 ){ // 一针见血
|
||||
|
||||
if( skill_level >= 8 ) dec_mp = 10;
|
||||
else dec_mp = 5;
|
||||
|
||||
}else
|
||||
if( (strcmp( skill_name, "PROFESSION_ENCLOSE" )) == 0 ){ // 附身术
|
||||
if( (strcmp( skill_name, "PROFESSION_ENCLOSE" )) == 0 ){ // 附身术
|
||||
if( skill_level >= 10 ) dec_mp = 80;
|
||||
else if( skill_level >= 8 ) dec_mp = 70;
|
||||
else if( skill_level >= 5) dec_mp = 60;
|
||||
else dec_mp = 50;
|
||||
}else
|
||||
if( (strcmp( skill_name, "PROFESSION_ICE_MIRROR" )) == 0 ){ // 冰镜术
|
||||
if( (strcmp( skill_name, "PROFESSION_ICE_MIRROR" )) == 0 ){ // 冰镜术
|
||||
if( skill_level >= 9 ) dec_mp = 40;
|
||||
else if( skill_level >= 7 ) dec_mp = 35;
|
||||
else if( skill_level >= 5 ) dec_mp = 30;
|
||||
else if( skill_level >= 3 ) dec_mp = 25;
|
||||
else dec_mp = 20;
|
||||
}else
|
||||
if( (strcmp( skill_name, "PROFESSION_FIRE_ENCLOSE" )) == 0 ){ // 火附体
|
||||
if( (strcmp( skill_name, "PROFESSION_FIRE_ENCLOSE" )) == 0 ){ // 火附体
|
||||
if( skill_level >= 10 ) dec_mp = 50;
|
||||
else if( skill_level >= 7 ) dec_mp = 40;
|
||||
else if( skill_level >= 4 ) dec_mp = 30;
|
||||
else dec_mp = 20;
|
||||
}else
|
||||
if( (strcmp( skill_name, "PROFESSION_ICE_ENCLOSE" )) == 0 ){ // 冰附体
|
||||
if( (strcmp( skill_name, "PROFESSION_ICE_ENCLOSE" )) == 0 ){ // 冰附体
|
||||
if( skill_level >= 10 ) dec_mp = 50;
|
||||
else if( skill_level >= 7 ) dec_mp = 40;
|
||||
else if( skill_level >= 4 ) dec_mp = 30;
|
||||
else dec_mp = 20;
|
||||
}else
|
||||
if( (strcmp( skill_name, "PROFESSION_THUNDER_ENCLOSE" )) == 0 ){ // 雷附体
|
||||
if( (strcmp( skill_name, "PROFESSION_THUNDER_ENCLOSE" )) == 0 ){ // 雷附体
|
||||
if( skill_level >= 10 ) dec_mp = 50;
|
||||
else if( skill_level >= 7 ) dec_mp = 40;
|
||||
else if( skill_level >= 4 ) dec_mp = 30;
|
||||
else dec_mp = 20;
|
||||
}else
|
||||
if( (strcmp( skill_name, "PROFESSION_TRANSPOSE" )) == 0 ){ // 移形换位
|
||||
if( (strcmp( skill_name, "PROFESSION_TRANSPOSE" )) == 0 ){ // 移形换位
|
||||
if( skill_level >= 10 ) dec_mp = 50;
|
||||
else if( skill_level >= 9 ) dec_mp = 40;
|
||||
else if( skill_level >= 7 ) dec_mp = 30;
|
||||
@ -565,13 +565,13 @@ int PROFESSION_MAGIC_COST_MP( int charaindex, int skill_num )
|
||||
else dec_mp = 10;
|
||||
}else
|
||||
#ifdef _PROFESSION_ADDSKILL
|
||||
if( (strcmp( skill_name, "PROFESSION_RESIST_F_I_T" )) == 0 ){ // 自然威能
|
||||
if( (strcmp( skill_name, "PROFESSION_RESIST_F_I_T" )) == 0 ){ // 自然威能
|
||||
if( skill_level >= 10 ) dec_mp = 20;
|
||||
else if( skill_level >= 9 ) dec_mp = 15;
|
||||
else if( skill_level >= 6 ) dec_mp = 10;
|
||||
else dec_mp = 5;
|
||||
}else
|
||||
if( (strcmp( skill_name, "PROFESSION_CALL_NATURE" )) == 0 ){ // 号召自然
|
||||
if( (strcmp( skill_name, "PROFESSION_CALL_NATURE" )) == 0 ){ // 号召自然
|
||||
|
||||
/*skill_level = SKILL_getInt( &hskill->skill, SKILL_LEVEL);
|
||||
if( skill_level >= 100 ) dec_mp = 50;
|
||||
@ -585,13 +585,13 @@ int PROFESSION_MAGIC_COST_MP( int charaindex, int skill_num )
|
||||
else dec_mp = 50;*/
|
||||
dec_mp = 50;
|
||||
}else
|
||||
if( (strcmp( skill_name, "PROFESSION_BOUNDARY" )) == 0 ){ // 四属性结界
|
||||
if( (strcmp( skill_name, "PROFESSION_BOUNDARY" )) == 0 ){ // 四属性结界
|
||||
char *pszP=NULL;
|
||||
if( skill_level > 9 ) dec_mp = 20;
|
||||
else if( skill_level > 6 ) dec_mp = 15;
|
||||
else dec_mp = 10;
|
||||
//破除结界耗损mp与其他结界不同
|
||||
if( (pszP = strstr( PROFESSION_SKILL_getChar( Pskillid, PROFESSION_SKILL_OPTION), "破结界" ) ) != NULL ){// 技能的参数
|
||||
//破除结界耗损mp与其他结界不同
|
||||
if( (pszP = strstr( PROFESSION_SKILL_getChar( Pskillid, PROFESSION_SKILL_OPTION), "破结界" ) ) != NULL ){// 技能的参数
|
||||
if( skill_level >= 9 ) dec_mp = 20;
|
||||
else if( skill_level > 4 ) dec_mp = 15;
|
||||
else if( skill_level > 2 ) dec_mp = 10;
|
||||
|
302
char/title.c
302
char/title.c
@ -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,28 +28,28 @@ 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,MAXMP]ATK,DEF
|
||||
/* 银尹月由仿丢□正
|
||||
* STR,TGH,MAXMP]ATK,DEF
|
||||
* LEVEL,CLASS,SKILL,ITEM,FIREREG,ICEREG,THUNDERREG
|
||||
* KANJILV,TALKCNT,WALKCNT,DEADCNT,LOGINCNT,BASEIMAGENUMBER
|
||||
* GOLD
|
||||
@ -69,11 +69,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 +93,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 +116,7 @@ static int TITLE_titlenum;
|
||||
static int TITLE_titlecfgnum;
|
||||
|
||||
/*------------------------------------------------------------
|
||||
* index 寞井日TITLE_table及骄侬毛 月
|
||||
* index 寞井日TITLE_table及骄侬毛 月
|
||||
------------------------------------------------------------*/
|
||||
int TITLE_getTitleIndex( int index)
|
||||
{
|
||||
@ -130,23 +130,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 +182,10 @@ char* TITLE_makeTitleStatusString( int charaindex,int havetitleindex )
|
||||
}
|
||||
|
||||
/*------------------------------------------------------------
|
||||
* 卅中惫寞及 侬 犯□正毛忒允
|
||||
* 娄醒
|
||||
* 卅仄
|
||||
* 忒曰袄
|
||||
* 卅中惫寞及 侬 犯□正毛忒允
|
||||
* 娄醒
|
||||
* 卅仄
|
||||
* 忒曰袄
|
||||
* char*
|
||||
------------------------------------------------------------*/
|
||||
char* TITLE_makeSkillFalseString( void )
|
||||
@ -196,13 +196,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 +215,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 +227,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 +248,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 +261,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 +283,7 @@ BOOL TITLE_initTitleName( char* filename )
|
||||
|
||||
TITLE_titlenum=0;
|
||||
|
||||
/* 引内 躲卅垫互窒垫丐月井升丹井譬屯月 */
|
||||
/* 引内 躲卅垫互窒垫丐月井升丹井譬屯月 */
|
||||
while( fgets( line, sizeof( line ), f ) ){
|
||||
linenum ++;
|
||||
if( line[0] == '#' )continue; /* comment */
|
||||
@ -294,7 +294,7 @@ BOOL TITLE_initTitleName( char* filename )
|
||||
}
|
||||
|
||||
if( fseek( f, 0, SEEK_SET ) == -1 ){
|
||||
fprint( "寻找错误\n" );
|
||||
fprint( "寻找错误\n" );
|
||||
fclose(f);
|
||||
return FALSE;
|
||||
}
|
||||
@ -302,12 +302,12 @@ BOOL TITLE_initTitleName( char* filename )
|
||||
TITLE_table = allocateMemory( sizeof(struct tagTITLE_Table)
|
||||
* TITLE_titlenum );
|
||||
if( TITLE_table == NULL ){
|
||||
fprint( "无法分配内存 %d\n" ,
|
||||
fprint( "无法分配内存 %d\n" ,
|
||||
sizeof(TITLE_table)*TITLE_titlenum);
|
||||
fclose( f );
|
||||
return FALSE;
|
||||
}
|
||||
/* 赓渝祭 */
|
||||
/* 赓渝祭 */
|
||||
{
|
||||
int i;
|
||||
for( i = 0; i < TITLE_titlenum; i ++ ) {
|
||||
@ -319,7 +319,7 @@ BOOL TITLE_initTitleName( char* filename )
|
||||
|
||||
}
|
||||
|
||||
/* 引凶 心 允 */
|
||||
/* 引凶 心 允 */
|
||||
linenum = 0;
|
||||
while( fgets( line, sizeof( line ), f ) ){
|
||||
linenum ++;
|
||||
@ -327,10 +327,10 @@ BOOL TITLE_initTitleName( char* filename )
|
||||
if( line[0] == '\n' )continue; /* none */
|
||||
chomp( line );
|
||||
|
||||
/* 垫毛帮溥允月 */
|
||||
/* 引内 tab 毛 " " 卞 五晶尹月 */
|
||||
/* 垫毛帮溥允月 */
|
||||
/* 引内 tab 毛 " " 卞 五晶尹月 */
|
||||
replaceString( line, '\t' , ' ' );
|
||||
/* 燮 及旦矢□旦毛潸月[*/
|
||||
/* 燮 及旦矢□旦毛潸月[*/
|
||||
{
|
||||
int i;
|
||||
char buf[256];
|
||||
@ -348,24 +348,24 @@ BOOL TITLE_initTitleName( char* filename )
|
||||
char token[256];
|
||||
int ret;
|
||||
|
||||
/* 夫午勾户及玄□弁件毛苇月 */
|
||||
/* 夫午勾户及玄□弁件毛苇月 */
|
||||
ret = getStringFromIndexWithDelim( line,",",1,token,
|
||||
sizeof(token));
|
||||
if( ret==FALSE ){
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
continue;
|
||||
}
|
||||
TITLE_table[title_readlen].index = atoi(token);
|
||||
|
||||
/* 2勾户及玄□弁件毛苇月 */
|
||||
/* 2勾户及玄□弁件毛苇月 */
|
||||
ret = getStringFromIndexWithDelim( line,",",2,token,
|
||||
sizeof(token));
|
||||
if( ret==FALSE ){
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
continue;
|
||||
}
|
||||
if( strlen( token) > sizeof( TITLE_table[title_readlen].name)-1) {
|
||||
fprint("警告! 头衔名称结束文件:%s 第%d行\n",
|
||||
fprint("警告! 头衔名称结束文件:%s 第%d行\n",
|
||||
filename, linenum);
|
||||
}
|
||||
strcpysafe( TITLE_table[title_readlen].name,
|
||||
@ -379,14 +379,14 @@ BOOL TITLE_initTitleName( char* filename )
|
||||
|
||||
TITLE_titlenum = title_readlen;
|
||||
|
||||
print( "有效头衔名称数是 %d...", TITLE_titlenum );
|
||||
print( "有效头衔名称数是 %d...", TITLE_titlenum );
|
||||
|
||||
#ifdef DEBUG
|
||||
|
||||
{
|
||||
int i;
|
||||
for( i=0; i <TITLE_titlenum ; i++ )
|
||||
print( "头衔索引[%d] 名称[%s] \n",
|
||||
print( "头衔索引[%d] 名称[%s] \n",
|
||||
TITLE_table[i].index,
|
||||
TITLE_table[i].name);
|
||||
}
|
||||
@ -394,12 +394,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 +407,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 +429,7 @@ static void TITLE_initTitleData( int array)
|
||||
|
||||
}
|
||||
/*------------------------------------------------------------
|
||||
* 醒垫涩烂毛引午户化ㄠ垫卞仄化支月[ 戈及手仇仇匹允月[
|
||||
* 醒垫涩烂毛引午户化ㄠ垫卞仄化支月[ 戈及手仇仇匹允月[
|
||||
*------------------------------------------------------------*/
|
||||
static int TITLE_getConfigOneLine( FILE *fp, char *line, int linelen)
|
||||
{
|
||||
@ -442,15 +442,15 @@ 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] == '{' ) {
|
||||
if( startflg == TRUE ) {
|
||||
print( "titleconfig:明明没有关闭「{」却出现了: %d \n",linenum);
|
||||
print( "titleconfig:明明没有关闭「{」却出现了: %d \n",linenum);
|
||||
/* } */
|
||||
return -1;
|
||||
}
|
||||
@ -458,25 +458,25 @@ static int TITLE_getConfigOneLine( FILE *fp, char *line, int linelen)
|
||||
}
|
||||
else if( buf[0] == '}' ) {
|
||||
if( startflg == FALSE) {
|
||||
print( "titleconfig:明明没有关闭「{」却出现了: %d \n",linenum);
|
||||
print( "titleconfig:明明没有关闭「{」却出现了: %d \n",linenum);
|
||||
/* } */
|
||||
return -1;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
else {
|
||||
/* "{"匹湃卞铵引匀化中凶日 }*/
|
||||
/* "{"匹湃卞铵引匀化中凶日 }*/
|
||||
if( startflg == TRUE ) {
|
||||
if( strlen( line) != 0 ) {
|
||||
if( line[strlen(line) -1] != ',' ) {
|
||||
strcatsafe( line, linelen, ",");
|
||||
}
|
||||
}
|
||||
/* ㄠ垫卞引午户化中仁*/
|
||||
/* ㄠ垫卞引午户化中仁*/
|
||||
chompex( buf );
|
||||
strcatsafe( line,linelen, buf);
|
||||
}
|
||||
/* 躲垫分互"{"匹反元引匀化卅中桦宁反公及引引ㄠ垫匹忒允 }*/
|
||||
/* 躲垫分互"{"匹反元引匀化卅中桦宁反公及引引ㄠ垫匹忒允 }*/
|
||||
else {
|
||||
chompex( buf );
|
||||
strcatsafe( line,linelen, buf);
|
||||
@ -484,7 +484,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 +521,12 @@ char *getlocaltime()
|
||||
}
|
||||
|
||||
/*------------------------------------------------------------
|
||||
* 惫寞涩烂及赓渝祭毛允月[
|
||||
* 娄醒
|
||||
* filename char* 涩烂白央奶伙
|
||||
* 忒曰袄
|
||||
* 岳 TRUE(1)
|
||||
* 撩 FALSE(0)
|
||||
* 惫寞涩烂及赓渝祭毛允月[
|
||||
* 娄醒
|
||||
* filename char* 涩烂白央奶伙
|
||||
* 忒曰袄
|
||||
* 岳 TRUE(1)
|
||||
* 撩 FALSE(0)
|
||||
*------------------------------------------------------------*/
|
||||
BOOL TITLE_initTitleConfig( char* filename )
|
||||
{
|
||||
@ -543,7 +543,7 @@ BOOL TITLE_initTitleConfig( char* filename )
|
||||
|
||||
TITLE_titlecfgnum=0;
|
||||
|
||||
/* 引内 躲卅垫互窒垫丐月井升丹井譬屯月 */
|
||||
/* 引内 躲卅垫互窒垫丐月井升丹井譬屯月 */
|
||||
/*while( fgets( line, sizeof( line ), f ) ){}*/
|
||||
while( 1 ) {
|
||||
int rc;
|
||||
@ -568,7 +568,7 @@ BOOL TITLE_initTitleConfig( char* filename )
|
||||
fclose( f );
|
||||
return FALSE;
|
||||
}
|
||||
/* 赓渝祭 */
|
||||
/* 赓渝祭 */
|
||||
{
|
||||
int i;
|
||||
for( i = 0; i < TITLE_titlecfgnum; i ++ ) {
|
||||
@ -583,7 +583,7 @@ BOOL TITLE_initTitleConfig( char* filename )
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* 引凶 心 允 */
|
||||
/* 引凶 心 允 */
|
||||
linenum = 0;
|
||||
/*while( fgets( line, sizeof( line ), f ) ){}*/
|
||||
while( 1) {
|
||||
@ -601,23 +601,23 @@ 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,
|
||||
sizeof(buf));
|
||||
if( ret == FALSE) {
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
TITLE_initTitleData( titlecfg_readlen);
|
||||
errflg = TRUE;
|
||||
break;
|
||||
@ -625,7 +625,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,39 +633,39 @@ 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",
|
||||
fprint("文件语法错误:%s 第%d行\n",
|
||||
filename,linenum);
|
||||
TITLE_initTitleData( titlecfg_readlen);
|
||||
errflg = TRUE;
|
||||
break;
|
||||
}
|
||||
/* 羁寞]尕羁寞互绣箕允月井譬屯月 */
|
||||
/* 羁寞]尕羁寞互绣箕允月井譬屯月 */
|
||||
comppos = charInclude( token, "<>=");
|
||||
if( comppos == -1 ) {
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
TITLE_initTitleData( titlecfg_readlen);
|
||||
errflg = TRUE;
|
||||
break;;
|
||||
}
|
||||
/* 羁寞]尕羁寞互ㄡ勾动晓 月午五 */
|
||||
/* 羁寞]尕羁寞互ㄡ勾动晓 月午五 */
|
||||
if( charInclude( &token[comppos+1], "<>=") != -1 ) {
|
||||
/* 升氏卅 胜井毛 戈 */
|
||||
/* 升氏卅 胜井毛 戈 */
|
||||
for( j = 0; j < 3; j ++ ) {
|
||||
if( memcmp( TITLE_compare[j].compare, &token[comppos], 2 ) == 0 ) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if( j == 3 ) {
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
TITLE_initTitleData( titlecfg_readlen);
|
||||
errflg = TRUE;
|
||||
break;
|
||||
@ -673,7 +673,7 @@ BOOL TITLE_initTitleConfig( char* filename )
|
||||
else {
|
||||
ret = TITLE_getParamData( titlecfg_readlen,i-1,&token[comppos+2]);
|
||||
if( !ret ) {
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
TITLE_initTitleData( titlecfg_readlen);
|
||||
errflg = TRUE;
|
||||
break;
|
||||
@ -687,14 +687,14 @@ BOOL TITLE_initTitleConfig( char* filename )
|
||||
else {
|
||||
ret = TITLE_getParamData( titlecfg_readlen,i-1,&token[comppos+1]);
|
||||
if( !ret ) {
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
TITLE_initTitleData( titlecfg_readlen);
|
||||
errflg = TRUE;
|
||||
break;
|
||||
}
|
||||
/*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,9 +704,9 @@ BOOL TITLE_initTitleConfig( char* filename )
|
||||
}
|
||||
}
|
||||
}
|
||||
/* 惫寞 隙烂互 井匀凶 or 卅氏井仄日及巨仿□*/
|
||||
/* 惫寞 隙烂互 井匀凶 or 卅氏井仄日及巨仿□*/
|
||||
if( errflg || TITLE_ConfigTable[titlecfg_readlen].title == -1 ) {
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
fprint("文件语法错误:%s 第%d行\n",filename,linenum);
|
||||
TITLE_initTitleData( titlecfg_readlen);
|
||||
}
|
||||
else {
|
||||
@ -718,24 +718,24 @@ BOOL TITLE_initTitleConfig( char* filename )
|
||||
|
||||
TITLE_titlecfgnum = titlecfg_readlen;
|
||||
|
||||
print( "有效头衔配置数是 %d...", TITLE_titlecfgnum );
|
||||
print( "有效头衔配置数是 %d...", TITLE_titlecfgnum );
|
||||
|
||||
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 +770,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 +803,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)
|
||||
{
|
||||
@ -822,13 +822,13 @@ BOOL TITLE_TitleCheck( int charaindex, BOOL mode)
|
||||
if( rc ) {
|
||||
if( delcnt > 0 ) {
|
||||
snprintf( msgbuf, sizeof( msgbuf),
|
||||
"失去%d%s 称号!", delcnt,
|
||||
"失去%d%s 称号!", delcnt,
|
||||
delcnt < 10 ? TITLE_MSGUNIT1:TITLE_MSGUNIT2);
|
||||
CHAR_talkToCli( charaindex, -1, msgbuf, CHAR_COLORYELLOW);
|
||||
}
|
||||
if( addcnt > 0 ) {
|
||||
snprintf( msgbuf, sizeof( msgbuf),
|
||||
"获得%d%s 称号!", addcnt,
|
||||
"获得%d%s 称号!", addcnt,
|
||||
addcnt < 10 ? TITLE_MSGUNIT1:TITLE_MSGUNIT2);
|
||||
CHAR_talkToCli( charaindex, -1, msgbuf, CHAR_COLORYELLOW);
|
||||
}
|
||||
@ -836,13 +836,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 +915,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 +944,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 +1034,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)
|
||||
{
|
||||
|
328
char/trade.c
328
char/trade.c
@ -20,38 +20,38 @@
|
||||
#include "npc_bus.h"
|
||||
#include "char_talk.h"
|
||||
#include "magic_base.h"
|
||||
#ifdef _TRADESYSTEM2 // (不可开) Syu ADD 新交易系统
|
||||
#ifdef _TRADESYSTEM2 // (不可开) Syu ADD 新交易系统
|
||||
#include "pet_skill.h"
|
||||
#endif
|
||||
#ifdef _PET_AMOI__E
|
||||
#include "pet.h"
|
||||
#endif
|
||||
|
||||
#define TRADE_WAIT "请稍候,连络%s中···"
|
||||
#define TRADE_NONE "前方什麽人也没有!"
|
||||
#define TRADE_OVERPLAYER "前方不只一位玩家喔!"
|
||||
#define TRADE_NOWILL "真是抱歉,对方不愿意跟你交易!"
|
||||
#define TRADE_TRADING "%s正在与其他人交易···"
|
||||
#define TRADE_VANISHITEM "丢在地上会消失的物品无法交易!"
|
||||
#define TRADE_PETFULL "%s宠物栏已满,交易取消!"
|
||||
#define TRADE_ITEMFULL "%s物品栏已满,请整理後再交易~"
|
||||
#define TRADE_CANCEL "%s将交易取消了!"
|
||||
#define TRADE_POOR "%s钱不够,无法交易!"
|
||||
#define TRADE_RICH "%s金钱交易请勿超过一百万!"
|
||||
#define TRADE_TOORICH "%s金钱将会超过一百万!"
|
||||
#define TRADE_POORLV "%s等级不够,无法照顾交易後的宠物!"
|
||||
#define TRADE_LOCK "交易锁定···"
|
||||
#define TRADE_SUCCESS "交易OK!"
|
||||
#define TRADE_FAILED "交易失败!"
|
||||
#define TRADE_FMPET "家族守护兽无法交易!"
|
||||
#define TRADE_WAIT "请稍候,连络%s中···"
|
||||
#define TRADE_NONE "前方什麽人也没有!"
|
||||
#define TRADE_OVERPLAYER "前方不只一位玩家喔!"
|
||||
#define TRADE_NOWILL "真是抱歉,对方不愿意跟你交易!"
|
||||
#define TRADE_TRADING "%s正在与其他人交易···"
|
||||
#define TRADE_VANISHITEM "丢在地上会消失的物品无法交易!"
|
||||
#define TRADE_PETFULL "%s宠物栏已满,交易取消!"
|
||||
#define TRADE_ITEMFULL "%s物品栏已满,请整理後再交易~"
|
||||
#define TRADE_CANCEL "%s将交易取消了!"
|
||||
#define TRADE_POOR "%s钱不够,无法交易!"
|
||||
#define TRADE_RICH "%s金钱交易请勿超过一百万!"
|
||||
#define TRADE_TOORICH "%s金钱将会超过一百万!"
|
||||
#define TRADE_POORLV "%s等级不够,无法照顾交易後的宠物!"
|
||||
#define TRADE_LOCK "交易锁定···"
|
||||
#define TRADE_SUCCESS "交易OK!"
|
||||
#define TRADE_FAILED "交易失败!"
|
||||
#define TRADE_FMPET "家族守护兽无法交易!"
|
||||
|
||||
#define TRADE_RDCANCEL "交易取消!"
|
||||
#define TRADE_RDCANCEL "交易取消!"
|
||||
#ifdef _TRADE_PK
|
||||
#define TRADE_PK_START "开始交易PK!"
|
||||
#define TRADE_PK_START "开始交易PK!"
|
||||
#endif
|
||||
#ifdef _LOCK_PET_ITEM
|
||||
#define TRADE_LOCKPET "绑定的宠物无法交易!"
|
||||
#define TRADE_LOCKITEM "绑定的道具无法交易!"
|
||||
#define TRADE_LOCKPET "绑定的宠物无法交易!"
|
||||
#define TRADE_LOCKITEM "绑定的道具无法交易!"
|
||||
#endif
|
||||
|
||||
#ifdef _ITEM_PILEFORTRADE
|
||||
@ -86,11 +86,11 @@ BOOL TRADE_getSomeTradeList( int meindex, STradeList *temp);
|
||||
void TRADE_InitTradeList( void)
|
||||
{
|
||||
int i;
|
||||
print("初始化交易系统...");
|
||||
print("初始化交易系统...");
|
||||
for( i=0; i<MAX_TRADELISTNUM; i++){
|
||||
TRADE_ResetTradeList( i);
|
||||
}
|
||||
print("完成\n");
|
||||
print("完成\n");
|
||||
}
|
||||
|
||||
void TRADE_ResetTradeList( int ti)
|
||||
@ -234,14 +234,14 @@ BOOL TRADE_addSomeTradeList( int meindex, int usTi, int *num, int type)
|
||||
case TRADE_ITEM:
|
||||
{
|
||||
int itemindex, MeMaxPile;
|
||||
MeMaxPile = CHAR_getMyMaxPilenum( meindex);//最大堆叠数
|
||||
MeMaxPile = CHAR_getMyMaxPilenum( meindex);//最大堆叠数
|
||||
if( usTi < CHAR_STARTITEMARRAY || usTi >= CHAR_MAXITEMHAVE ) return FALSE;
|
||||
itemindex = CHAR_getItemIndex( meindex, usTi );
|
||||
//如果是绑定的道具则不可以用于交易
|
||||
//如果是绑定的道具则不可以用于交易
|
||||
#ifdef _PETITEM__AMOI_E
|
||||
if(ITEM_NOT_TRADE & ITEM_getInt(itemindex, ITEM_TYPEOFITEM)){
|
||||
char buf[256];
|
||||
sprintf( buf, "%s无法交易。", ITEM_getChar( itemindex, ITEM_NAME) );
|
||||
sprintf( buf, "%s无法交易。", ITEM_getChar( itemindex, ITEM_NAME) );
|
||||
CHAR_talkToCli( meindex, -1, buf, CHAR_COLORRED);
|
||||
return FALSE;
|
||||
}
|
||||
@ -250,12 +250,12 @@ BOOL TRADE_addSomeTradeList( int meindex, int usTi, int *num, int type)
|
||||
|
||||
if( ITEM_getInt( itemindex, ITEM_VANISHATDROP) == 1 || ITEM_getInt( itemindex, ITEM_TIME) > 0){
|
||||
char buf[256];
|
||||
sprintf( buf, "%s无法交易。", ITEM_getChar( itemindex, ITEM_NAME) );
|
||||
sprintf( buf, "%s无法交易。", ITEM_getChar( itemindex, ITEM_NAME) );
|
||||
CHAR_talkToCli( meindex, -1, buf, CHAR_COLORYELLOW);
|
||||
return FALSE;
|
||||
}
|
||||
#ifdef _ZHIPIAO_SYSTEM
|
||||
if( strstr(ITEM_getChar(itemindex,ITEM_NAME),"支票")!=NULL && strstr(ITEM_getChar(itemindex,ITEM_NAME),"DP支票")==NULL ){
|
||||
if( strstr(ITEM_getChar(itemindex,ITEM_NAME),"支票")!=NULL && strstr(ITEM_getChar(itemindex,ITEM_NAME),"DP支票")==NULL ){
|
||||
int zhipiaoindex=atoi(ITEM_getChar(itemindex,ITEM_ARGUMENT));
|
||||
if(zhipiaoindex>0){
|
||||
time_t timep;
|
||||
@ -264,7 +264,7 @@ BOOL TRADE_addSomeTradeList( int meindex, int usTi, int *num, int type)
|
||||
p=localtime(&timep);
|
||||
timep = mktime(p);
|
||||
if(timep>zhipiaoindex){
|
||||
CHAR_talkToCli(meindex, -1, "该支票已经过期,无法交易,请尽快使用!", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli(meindex, -1, "该支票已经过期,无法交易,请尽快使用!", CHAR_COLORYELLOW);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
@ -274,12 +274,12 @@ BOOL TRADE_addSomeTradeList( int meindex, int usTi, int *num, int type)
|
||||
char *arg = ITEM_getChar(itemindex, ITEM_NAME);
|
||||
if(arg[0] == '*'){
|
||||
char buf[256];
|
||||
sprintf( buf, "%s无法交易。", ITEM_getChar( itemindex, ITEM_NAME) );
|
||||
sprintf( buf, "%s无法交易。", ITEM_getChar( itemindex, ITEM_NAME) );
|
||||
CHAR_talkToCli( meindex, -1, buf, CHAR_COLORYELLOW);
|
||||
return FALSE;
|
||||
}
|
||||
#endif
|
||||
if( ITEM_getInt( itemindex, ITEM_CANBEPILE) == 1 ){//可堆叠
|
||||
if( ITEM_getInt( itemindex, ITEM_CANBEPILE) == 1 ){//可堆叠
|
||||
int itemMaxPile = ITEM_getInt( itemindex, ITEM_USEPILENUMS);
|
||||
if( itemMaxPile < 0 ) return FALSE;
|
||||
//ITEM_USEPILENUMS
|
||||
@ -309,35 +309,35 @@ BOOL TRADE_addSomeTradeList( int meindex, int usTi, int *num, int type)
|
||||
petindex = CHAR_getCharPet( meindex, usTi );
|
||||
if( !CHAR_CHECKINDEX(petindex)) return FALSE;
|
||||
if( CHAR_getInt( petindex, CHAR_PETFAMILY) == 1 ){
|
||||
CHAR_talkToCli( meindex, -1, "家族守护兽无法交易。", CHAR_COLORYELLOW);
|
||||
return FALSE;//家族守护兽
|
||||
CHAR_talkToCli( meindex, -1, "家族守护兽无法交易。", CHAR_COLORYELLOW);
|
||||
return FALSE;//家族守护兽
|
||||
}
|
||||
if( CHAR_getWorkInt( toindex, CHAR_PickAllPet) != TRUE ){
|
||||
if( CHAR_getInt( petindex, CHAR_LV) > (CHAR_getInt( toindex, CHAR_LV)+5) &&
|
||||
(CHAR_getInt( toindex, CHAR_TRANSMIGRATION ) <= 0 ) ){
|
||||
CHAR_talkToCli( meindex, -1, "对方无法照顾该宠物。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( meindex, -1, "对方无法照顾该宠物。", CHAR_COLORYELLOW);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
//如果是绑定的宠物则不可交易
|
||||
//如果是绑定的宠物则不可交易
|
||||
#ifdef _PET_AMOI__E
|
||||
//if( PET_NOT_DropTradeStreetVandor== EVOLUTION_getPetENABLETRADE( CHAR_getInt( petindex, CHAR_PETID)) ||
|
||||
// PET_NOT_Trade == EVOLUTION_getPetENABLETRADE( CHAR_getInt( petindex, CHAR_PETID))||
|
||||
// PET_NOT_TradeAndStreetVandor == EVOLUTION_getPetENABLETRADE( CHAR_getInt( petindex, CHAR_PETID))){
|
||||
if( ( PET_NOT_TRADE) & EVOLUTION_getPetENABLETRADE( CHAR_getInt( petindex, CHAR_PETID))){
|
||||
|
||||
CHAR_talkToCli(meindex,-1,"该宠物无法交易!~",CHAR_COLORRED);
|
||||
CHAR_talkToCli(meindex,-1,"该宠物无法交易!~",CHAR_COLORRED);
|
||||
return FALSE;
|
||||
}
|
||||
#endif
|
||||
#ifdef _PET_BUG
|
||||
if( CHAR_getInt( petindex, CHAR_VITAL)>=getPetPoint(0)*20 || CHAR_getInt(petindex,CHAR_STR)>=getPetPoint(1)*80 || CHAR_getInt(petindex,CHAR_TOUGH)>=getPetPoint(2)*80 || CHAR_getInt(petindex,CHAR_DEX)>=getPetPoint(3)*100){
|
||||
CHAR_talkToCli( meindex, -1, "宠物属性过高无法交易。", CHAR_COLORYELLOW);
|
||||
return FALSE;//属性过高
|
||||
CHAR_talkToCli( meindex, -1, "宠物属性过高无法交易。", CHAR_COLORYELLOW);
|
||||
return FALSE;//属性过高
|
||||
}
|
||||
#endif
|
||||
if(strlen(CHAR_getChar(petindex,CHAR_USERPETNAME))>0 && strstr(CHAR_getChar(petindex,CHAR_USERPETNAME),"*")!=NULL){
|
||||
CHAR_talkToCli(meindex, -1, "宠物自定义名称中含有(*),无法丢弃、卖店、交易、摆摊,请修改后操作。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli(meindex, -1, "宠物自定义名称中含有(*),无法丢弃、卖店、交易、摆摊,请修改后操作。", CHAR_COLORYELLOW);
|
||||
return FALSE;
|
||||
}
|
||||
#ifdef _PETSKILL_BINDING
|
||||
@ -346,15 +346,15 @@ BOOL TRADE_addSomeTradeList( int meindex, int usTi, int *num, int type)
|
||||
skillid=CHAR_getPetSkill(petindex,pi);
|
||||
skillarray = PETSKILL_getPetskillArray( skillid);
|
||||
if( PETSKILL_CHECKINDEX( skillarray) == FALSE ) continue;
|
||||
if(strstr(PETSKILL_getChar( skillarray, PETSKILL_NAME),"★")){
|
||||
CHAR_talkToCli(meindex, -1, "此宠物为绑定宠物,无法交易", CHAR_COLORRED);
|
||||
if(strstr(PETSKILL_getChar( skillarray, PETSKILL_NAME),"★")){
|
||||
CHAR_talkToCli(meindex, -1, "此宠物为绑定宠物,无法交易", CHAR_COLORRED);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#ifdef _PET_BINDING
|
||||
if(strstr(CHAR_getChar(petindex,CHAR_NAME),"*") || strstr(CHAR_getChar(petindex,CHAR_NAME),"+")){
|
||||
CHAR_talkToCli(meindex, -1, "此宠物为绑定宠物,无法交易", CHAR_COLORRED);
|
||||
CHAR_talkToCli(meindex, -1, "此宠物为绑定宠物,无法交易", CHAR_COLORRED);
|
||||
return FALSE;
|
||||
}
|
||||
#endif
|
||||
@ -414,7 +414,7 @@ BOOL TRADE_HandlePet( int meindex, int showindex, char *message, char *outmess);
|
||||
void CHAR_Trade(int fd, int index, char* message)
|
||||
{
|
||||
char firstToken[64];
|
||||
// shan 以下注掉是不必要的动作 2002/03/05
|
||||
// shan 以下注掉是不必要的动作 2002/03/05
|
||||
//char messageeraseescape[512];
|
||||
char* messagebody;
|
||||
|
||||
@ -430,17 +430,17 @@ void CHAR_Trade(int fd, int index, char* message)
|
||||
CHAR_getMessageBody( message, firstToken, sizeof(firstToken), &messagebody);
|
||||
|
||||
switch( tolower( firstToken[0]) ){
|
||||
case 'd': // 寻找前方玩家
|
||||
case 'd': // 寻找前方玩家
|
||||
|
||||
TRADE_Search(fd, index, message);
|
||||
break;
|
||||
/* case 'c':
|
||||
TRADE_Will(fd, index, message);
|
||||
break;
|
||||
*/ case 't': // 显示交易的物品、金钱、宠物
|
||||
*/ case 't': // 显示交易的物品、金钱、宠物
|
||||
TRADE_ShowItem(fd, index, message);
|
||||
break;
|
||||
case 'w': // 关闭交易
|
||||
case 'w': // 关闭交易
|
||||
print(" TRADE_Close:%d ", index);
|
||||
TRADE_Close(fd, index, message);
|
||||
break;
|
||||
@ -461,18 +461,18 @@ BOOL TRADE_Search(int fd, int meindex, char* message)
|
||||
|
||||
if (!CHAR_CHECKINDEX(meindex)) return FALSE;
|
||||
|
||||
// 若玩家状态为交易中或交易锁定中则不予处理
|
||||
// 若玩家状态为交易中或交易锁定中则不予处理
|
||||
if (CHAR_getWorkInt(meindex, CHAR_WORKTRADEMODE) == CHAR_TRADE_TRADING
|
||||
|| CHAR_getWorkInt(meindex, CHAR_WORKTRADEMODE) == CHAR_TRADE_LOCK)
|
||||
return FALSE;
|
||||
|
||||
// 若玩家状态为组队或战斗中则不予处理
|
||||
// 若玩家状态为组队或战斗中则不予处理
|
||||
if ((CHAR_getWorkInt(meindex, CHAR_WORKPARTYMODE) != CHAR_PARTY_NONE)
|
||||
|| (CHAR_getWorkInt(meindex, CHAR_WORKBATTLEMODE) != BATTLE_CHARMODE_NONE))
|
||||
return FALSE;
|
||||
|
||||
#ifdef _STREET_VENDOR
|
||||
// 若玩家在摆摊中不处理交易
|
||||
// 若玩家在摆摊中不处理交易
|
||||
if(CHAR_getWorkInt(meindex,CHAR_WORKSTREETVENDOR) > -1) return FALSE;
|
||||
#endif
|
||||
|
||||
@ -480,7 +480,7 @@ BOOL TRADE_Search(int fd, int meindex, char* message)
|
||||
|
||||
if (getStringFromIndexWithDelim(message, "|", 2, token,
|
||||
sizeof(token)) == FALSE) return FALSE;
|
||||
// 设定状态交易请求中
|
||||
// 设定状态交易请求中
|
||||
// CHAR_setWorkInt(meindex, CHAR_WORKTRADEMODE, CHAR_TRADE_SENDING);
|
||||
|
||||
#ifndef _ITEM_PILEFORTRADE
|
||||
@ -494,7 +494,7 @@ BOOL TRADE_Search(int fd, int meindex, char* message)
|
||||
|
||||
found_count = CHAR_getSameCoordinateObjects( objbuf, arraysizeof(objbuf),
|
||||
CHAR_getInt(meindex, CHAR_FLOOR),front_x, front_y);
|
||||
// 前方没有玩家或对方关闭交易选项
|
||||
// 前方没有玩家或对方关闭交易选项
|
||||
if (found_count == 0){
|
||||
CHAR_talkToCli(meindex, -1, TRADE_NONE, CHAR_COLORYELLOW);
|
||||
CHAR_setWorkInt(meindex, CHAR_WORKTRADEMODE, CHAR_TRADE_FREE);
|
||||
@ -531,7 +531,7 @@ BOOL TRADE_Search(int fd, int meindex, char* message)
|
||||
}
|
||||
|
||||
if (cnt == 0){
|
||||
// 前方没有玩家或对方关闭交易选项
|
||||
// 前方没有玩家或对方关闭交易选项
|
||||
if (found){
|
||||
CHAR_talkToCli(meindex, -1, TRADE_NOWILL, CHAR_COLORYELLOW);
|
||||
}else
|
||||
@ -541,7 +541,7 @@ BOOL TRADE_Search(int fd, int meindex, char* message)
|
||||
CHAR_setWorkInt(meindex, CHAR_WORKTRADEMODE, CHAR_TRADE_FREE);
|
||||
return FALSE;
|
||||
}
|
||||
// 前方有一位玩家
|
||||
// 前方有一位玩家
|
||||
if (cnt == 1){
|
||||
#ifdef _ITEM_PILEFORTRADE
|
||||
int ti;
|
||||
@ -554,7 +554,7 @@ BOOL TRADE_Search(int fd, int meindex, char* message)
|
||||
if( (ti = TRADE_getTradeListIndex()) < 0 ||
|
||||
TRADE_setTradeListIndex( ti, meindex, toindex) == FALSE ){
|
||||
|
||||
CHAR_talkToCli( meindex, -1, "系统忙碌中。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( meindex, -1, "系统忙碌中。", CHAR_COLORYELLOW);
|
||||
CHAR_setWorkInt( meindex, CHAR_WORKTRADEMODE, CHAR_TRADE_FREE);
|
||||
TRADE_CheckTradeListUser();
|
||||
|
||||
@ -579,7 +579,7 @@ BOOL TRADE_Search(int fd, int meindex, char* message)
|
||||
CHAR_sendTradeEffect(meindex, 1);
|
||||
CHAR_sendTradeEffect(toindex, 1);
|
||||
return TRUE;
|
||||
}else if (cnt > 1){ // 前方不只一位玩家
|
||||
}else if (cnt > 1){ // 前方不只一位玩家
|
||||
CHAR_talkToCli(meindex, -1, TRADE_OVERPLAYER, CHAR_COLORYELLOW);
|
||||
// sprintf(msgbuf, "C|%d|%s|0", tofd, tocharaname);
|
||||
CHAR_setWorkInt(meindex, CHAR_WORKTRADEMODE, CHAR_TRADE_FREE);
|
||||
@ -723,7 +723,7 @@ void TRADE_ShowItem(int fd, int meindex, char* message)
|
||||
#endif
|
||||
|
||||
if (!CHAR_CHECKINDEX(toindex)) return;
|
||||
// 若玩家状态为组队或战斗中则不予处理
|
||||
// 若玩家状态为组队或战斗中则不予处理
|
||||
if ((CHAR_getWorkInt(meindex, CHAR_WORKPARTYMODE) != CHAR_PARTY_NONE)
|
||||
|| (CHAR_getWorkInt(meindex, CHAR_WORKBATTLEMODE) != BATTLE_CHARMODE_NONE))
|
||||
return;
|
||||
@ -761,7 +761,7 @@ void TRADE_ShowItem(int fd, int meindex, char* message)
|
||||
print(" TRADE_Close_Err4:%d,%d,%s,%s ", meindex, showindex, message, buf1);
|
||||
TRADE_Close(fd, meindex, message);
|
||||
return;
|
||||
}else{// 将欲交易之金钱传给对方
|
||||
}else{// 将欲交易之金钱传给对方
|
||||
snprintf(msg, sizeof(msg), "T|%d|%s|G|%d|%s", fd, mycharaname, showindex, buf1);
|
||||
lssproto_TD_send( tofd, -1, msg);
|
||||
}
|
||||
@ -783,14 +783,14 @@ void TRADE_ShowItem(int fd, int meindex, char* message)
|
||||
break;
|
||||
case 'k':
|
||||
if((CONNECT_get_confirm(fd)==TRUE) &&
|
||||
(CONNECT_get_confirm(tofd)==TRUE) ){//当双方都按下 lock
|
||||
(CONNECT_get_confirm(tofd)==TRUE) ){//当双方都按下 lock
|
||||
if( CHAR_getWorkInt(meindex, CHAR_WORKTRADEMODE) == CHAR_TRADE_LOCK ){
|
||||
//andy_log
|
||||
print("ANDY err 防止第二次进入!!\n");
|
||||
return;//防止第二次进入
|
||||
print("ANDY err 防止第二次进入!!\n");
|
||||
return;//防止第二次进入
|
||||
}
|
||||
CHAR_setWorkInt(meindex, CHAR_WORKTRADEMODE, CHAR_TRADE_LOCK);
|
||||
//检查对方是否按下 ok
|
||||
//检查对方是否按下 ok
|
||||
if( CHAR_getWorkInt( toindex, CHAR_WORKTRADEMODE) != CHAR_TRADE_LOCK )return;
|
||||
|
||||
snprintf(msg, sizeof(msg), "T|%d|%s|A", fd, mycharaname);
|
||||
@ -923,8 +923,8 @@ void TRADE_SwapItem( int meindex, int toindex, char* message, int fd, char* mych
|
||||
CHAR_getChar( toindex, CHAR_NAME),
|
||||
CHAR_getChar( petindex2, CHAR_NAME));
|
||||
if(strcmp( CHAR_getChar( petindex1, CHAR_UNIQUECODE), CHAR_getChar( petindex2, CHAR_UNIQUECODE))== 0){
|
||||
CHAR_talkToCli(meindex, -1, "检测到非法宠物交易,系统自动清除!", CHAR_COLORRED);
|
||||
CHAR_talkToCli(toindex, -1, "检测到非法宠物交易,系统自动清除!", CHAR_COLORRED);
|
||||
CHAR_talkToCli(meindex, -1, "检测到非法宠物交易,系统自动清除!", CHAR_COLORRED);
|
||||
CHAR_talkToCli(toindex, -1, "检测到非法宠物交易,系统自动清除!", CHAR_COLORRED);
|
||||
NPC_DelPet(toindex,n);
|
||||
}
|
||||
}
|
||||
@ -936,8 +936,8 @@ void TRADE_SwapItem( int meindex, int toindex, char* message, int fd, char* mych
|
||||
{
|
||||
CHAR_charSaveFromConnect(meindex, FALSE);
|
||||
CHAR_charSaveFromConnect(toindex, FALSE);
|
||||
CHAR_talkToCli(meindex, -1, "系统为你自动存档!", CHAR_COLORRED);
|
||||
CHAR_talkToCli(toindex, -1, "系统为你自动存档!", CHAR_COLORRED);
|
||||
CHAR_talkToCli(meindex, -1, "系统为你自动存档!", CHAR_COLORRED);
|
||||
CHAR_talkToCli(toindex, -1, "系统为你自动存档!", CHAR_COLORRED);
|
||||
}
|
||||
}
|
||||
|
||||
@ -959,7 +959,7 @@ int TRADE_HandleTrade_DelItem( int charaindex, int MyMaxPile, int MaxPile, int *
|
||||
if(ITEM_getInt( itemindex, ITEM_CANBEPILE)!=1 && ITEM_getInt( itemindex, ITEM_USEPILENUMS)>1){
|
||||
CHAR_setItemIndex( charaindex , Item[i], -1);
|
||||
CHAR_sendItemDataOne(charaindex,Item[i]);
|
||||
CHAR_talkToCli(charaindex,-1,"非法道具自动删除",CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli(charaindex,-1,"非法道具自动删除",CHAR_COLORYELLOW);
|
||||
return -1;
|
||||
}
|
||||
pilenum = ITEM_getInt( itemindex, ITEM_USEPILENUMS);
|
||||
@ -1155,8 +1155,8 @@ void BATTLE_Trade(void)
|
||||
}
|
||||
CHAR_charSaveFromConnect(meindexpk, FALSE);
|
||||
CHAR_charSaveFromConnect(toindexpk, FALSE);
|
||||
CHAR_talkToCli(meindexpk, -1, "系统为你自动存档!", CHAR_COLORRED);
|
||||
CHAR_talkToCli(toindexpk, -1, "系统为你自动存档!", CHAR_COLORRED);
|
||||
CHAR_talkToCli(meindexpk, -1, "系统为你自动存档!", CHAR_COLORRED);
|
||||
CHAR_talkToCli(toindexpk, -1, "系统为你自动存档!", CHAR_COLORRED);
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -1169,10 +1169,10 @@ BOOL TRADE_HandleTrade( int meindex, STradeList *temp1, int toindex, STradeList
|
||||
int LostPet[5]={-1,-1,-1,-1,-1};
|
||||
|
||||
|
||||
MeMaxPile = CHAR_getMyMaxPilenum( meindex);//最大堆叠数
|
||||
MeMaxPile = CHAR_getMyMaxPilenum( meindex);//最大堆叠数
|
||||
ToMaxPile = CHAR_getMyMaxPilenum( toindex);
|
||||
//移除meindex
|
||||
//移除toindex
|
||||
//移除meindex
|
||||
//移除toindex
|
||||
{
|
||||
char buf[256];
|
||||
|
||||
@ -1183,7 +1183,7 @@ BOOL TRADE_HandleTrade( int meindex, STradeList *temp1, int toindex, STradeList
|
||||
CHAR_getInt( meindex, CHAR_FLOOR), CHAR_getInt( meindex, CHAR_X), CHAR_getInt( meindex, CHAR_Y) );
|
||||
LogTrade(buf);
|
||||
}
|
||||
//移除
|
||||
//移除
|
||||
if( CHAR_getInt( meindex, CHAR_FLOOR)==50000 && CHAR_getInt( toindex, CHAR_FLOOR)==50000)
|
||||
{
|
||||
if( CHAR_getWorkInt( meindex, CHAR_WORKTRADEPK)==1 && CHAR_getWorkInt( toindex, CHAR_WORKTRADEPK)==2)
|
||||
@ -1195,7 +1195,7 @@ BOOL TRADE_HandleTrade( int meindex, STradeList *temp1, int toindex, STradeList
|
||||
if( (ret=TRADE_HandleTrade_DelPet( toindex, temp2->PetTi, MePet)) == -1 ) return FALSE;
|
||||
if( TRADE_HandleTrade_DelGold( meindex, temp1->Golds, &ToGold) == FALSE ) return FALSE;
|
||||
if( TRADE_HandleTrade_DelGold( toindex, temp2->Golds, &MeGold) == FALSE ) return FALSE;
|
||||
//加入
|
||||
//加入
|
||||
if( TRADE_HandleTrade_AddItem( meindex, MeItem) == FALSE ) return FALSE;
|
||||
if( TRADE_HandleTrade_AddItem( meindex, ToItem) == FALSE ) return FALSE;
|
||||
if( TRADE_HandleTrade_AddPet( meindex, MePet) == FALSE) return FALSE;
|
||||
@ -1215,7 +1215,7 @@ BOOL TRADE_HandleTrade( int meindex, STradeList *temp1, int toindex, STradeList
|
||||
if( (ret=TRADE_HandleTrade_DelPet( toindex, temp2->PetTi, MePet)) == -1 ) return FALSE;
|
||||
if( TRADE_HandleTrade_DelGold( meindex, temp1->Golds, &ToGold) == FALSE ) return FALSE;
|
||||
if( TRADE_HandleTrade_DelGold( toindex, temp2->Golds, &MeGold) == FALSE ) return FALSE;
|
||||
//加入
|
||||
//加入
|
||||
if( TRADE_HandleTrade_AddItem( toindex, MeItem) == FALSE ) return FALSE;
|
||||
if( TRADE_HandleTrade_AddItem( toindex, ToItem) == FALSE ) return FALSE;
|
||||
if( TRADE_HandleTrade_AddPet( toindex, MePet) == FALSE) return FALSE;
|
||||
@ -1236,7 +1236,7 @@ BOOL TRADE_HandleTrade( int meindex, STradeList *temp1, int toindex, STradeList
|
||||
if( (ret=TRADE_HandleTrade_DelPet( toindex, temp2->PetTi, MePet)) == -1 ) return FALSE;
|
||||
if( TRADE_HandleTrade_DelGold( meindex, temp1->Golds, &ToGold) == FALSE ) return FALSE;
|
||||
if( TRADE_HandleTrade_DelGold( toindex, temp2->Golds, &MeGold) == FALSE ) return FALSE;
|
||||
//加入
|
||||
//加入
|
||||
if( TRADE_HandleTrade_AddItem( meindex, MeItem) == FALSE ) return FALSE;
|
||||
if( TRADE_HandleTrade_AddItem( toindex, ToItem) == FALSE ) return FALSE;
|
||||
if( TRADE_HandleTrade_AddPet( meindex, MePet) == FALSE) return FALSE;
|
||||
@ -1301,10 +1301,10 @@ int TRADE_CheckItembuf(int fd, int meindex, int toindex, int tofd, char* mychara
|
||||
if( TradeList[Tradeti][0].use != 1 || TradeList[Tradeti][1].use != 1 ) return -1;
|
||||
if( TRADE_getSomeTradeList( meindex, &TradeListTemp[0]) == FALSE ) return -1;
|
||||
if( TRADE_getSomeTradeList( toindex, &TradeListTemp[1]) == FALSE ) return -1;
|
||||
//确定空位
|
||||
//确定空位
|
||||
if( TRADE_CheckTradeList( meindex, &TradeListTemp[0], toindex, &TradeListTemp[1]) == FALSE ) return -1;
|
||||
//移除人物身上
|
||||
//加入人物身上
|
||||
//移除人物身上
|
||||
//加入人物身上
|
||||
#ifdef _TRADE_PK
|
||||
if(CHAR_getInt( meindex, CHAR_FLOOR)==50000 && CHAR_getInt( toindex, CHAR_FLOOR)==50000)
|
||||
{
|
||||
@ -1340,7 +1340,7 @@ int TRADE_CheckItembuf(int fd, int meindex, int toindex, int tofd, char* mychara
|
||||
{
|
||||
#endif
|
||||
if( TRADE_HandleTrade( meindex, &TradeListTemp[0], toindex, &TradeListTemp[1] ) == FALSE ) return -1;
|
||||
//交易结束动作
|
||||
//交易结束动作
|
||||
return 1;
|
||||
#ifdef _TRADE_PK
|
||||
}
|
||||
@ -1351,14 +1351,14 @@ int TRADE_CheckItembuf(int fd, int meindex, int toindex, int tofd, char* mychara
|
||||
/*
|
||||
int TRADE_CheckItembuf(int fd, int meindex, int toindex, int tofd, char* mycharaname, char* tocharaname)
|
||||
{
|
||||
#ifdef _TRADESYSTEM2 // (不可开) Syu ADD 新交易系统
|
||||
int myItem[42] = { -1 } ; //我方所有的交易内容编号
|
||||
int oppItem[42] = { -1 }; //对方所有的交易内容编号
|
||||
#ifdef _TRADESYSTEM2 // (不可开) Syu ADD 新交易系统
|
||||
int myItem[42] = { -1 } ; //我方所有的交易内容编号
|
||||
int oppItem[42] = { -1 }; //对方所有的交易内容编号
|
||||
int ii , jj;
|
||||
int Iitem1[15] = { 0 } ; //我方道具的index
|
||||
int Iitem2[15] = { 0 } ; //对方道具的index
|
||||
int ppet1[5] = { 0 } ; //我方宠物的index
|
||||
int ppet2[5] = { 0 } ; //对方宠物的index
|
||||
int Iitem1[15] = { 0 } ; //我方道具的index
|
||||
int Iitem2[15] = { 0 } ; //对方道具的index
|
||||
int ppet1[5] = { 0 } ; //我方宠物的index
|
||||
int ppet2[5] = { 0 } ; //对方宠物的index
|
||||
BOOL tradeflag = TRUE ;
|
||||
int count = 0 ;
|
||||
#endif
|
||||
@ -1378,19 +1378,19 @@ int TRADE_CheckItembuf(int fd, int meindex, int toindex, int tofd, char* mychara
|
||||
CONNECT_getTradeTmp(tofd, toitembuf, sizeof(toitembuf));
|
||||
|
||||
|
||||
#ifdef _TRADESYSTEM2 // (不可开) Syu ADD 新交易系统
|
||||
//取得我方所有交易内容编号
|
||||
#ifdef _TRADESYSTEM2 // (不可开) Syu ADD 新交易系统
|
||||
//取得我方所有交易内容编号
|
||||
for ( ii = 0 ; ii < 42 ; ii ++ ) {
|
||||
if (getStringFromIndexWithDelim(itembuf, "|", 6 + ii * 2 , token, sizeof(token)) == TRUE)
|
||||
myItem[ii] = atoi(token);
|
||||
}
|
||||
//取得对方所有交易内容编号
|
||||
//取得对方所有交易内容编号
|
||||
for ( ii = 0 ; ii < 42 ; ii ++ ) {
|
||||
if (getStringFromIndexWithDelim(toitembuf, "|", 6 + ii * 2 , token, sizeof(token)) == TRUE)
|
||||
oppItem[ii] = atoi(token);
|
||||
}
|
||||
#else
|
||||
// 比对双方之最後交易协定
|
||||
// 比对双方之最後交易协定
|
||||
if (getStringFromIndexWithDelim(itembuf, "|", 5, token, sizeof(token)) == TRUE)
|
||||
strcpy(a, token);
|
||||
if (getStringFromIndexWithDelim(itembuf, "|", 6, token, sizeof(token)) == TRUE)
|
||||
@ -1442,8 +1442,8 @@ int TRADE_CheckItembuf(int fd, int meindex, int toindex, int tofd, char* mychara
|
||||
toitemindex6 = atoi(token);
|
||||
#endif
|
||||
|
||||
#ifdef _TRADESYSTEM2 // (不可开) Syu ADD 新交易系统
|
||||
//检查有无重复交易的道具
|
||||
#ifdef _TRADESYSTEM2 // (不可开) Syu ADD 新交易系统
|
||||
//检查有无重复交易的道具
|
||||
for ( ii = 0 ; ii < 15 ; ii ++ ) {
|
||||
for ( jj = ii + 1 ; jj < 15 ; jj ++ ) {
|
||||
if ( myItem[ii] == myItem[jj] )
|
||||
@ -1459,7 +1459,7 @@ int TRADE_CheckItembuf(int fd, int meindex, int toindex, int tofd, char* mychara
|
||||
}
|
||||
}
|
||||
#else
|
||||
// shan hjj add 洗道具
|
||||
// shan hjj add 洗道具
|
||||
if (itemindex1==itemindex2){
|
||||
if (itemindex1!=-1){
|
||||
return -1;
|
||||
@ -1473,8 +1473,8 @@ int TRADE_CheckItembuf(int fd, int meindex, int toindex, int tofd, char* mychara
|
||||
// End
|
||||
#endif
|
||||
|
||||
#ifdef _TRADESYSTEM2 // (不可开) Syu ADD 新交易系统
|
||||
//比对双方交易的物品是否都正确
|
||||
#ifdef _TRADESYSTEM2 // (不可开) Syu ADD 新交易系统
|
||||
//比对双方交易的物品是否都正确
|
||||
for ( ii = 0 ; ii < 21 ; ii ++ ) {
|
||||
if ( myItem[ii] != oppItem[ii+21] ) {
|
||||
tradeflag = FALSE ;
|
||||
@ -1487,9 +1487,9 @@ int TRADE_CheckItembuf(int fd, int meindex, int toindex, int tofd, char* mychara
|
||||
break;
|
||||
}
|
||||
}
|
||||
//双方内容正确开始进行处理
|
||||
//双方内容正确开始进行处理
|
||||
if ( tradeflag == TRUE ) {
|
||||
//计算双方道具的加减
|
||||
//计算双方道具的加减
|
||||
for ( ii = 0 ; ii < 15 ; ii ++ ) {
|
||||
if ( myItem[ii] != -1 ) {
|
||||
swapitem1--;
|
||||
@ -1509,7 +1509,7 @@ int TRADE_CheckItembuf(int fd, int meindex, int toindex, int tofd, char* mychara
|
||||
&& (itemindex3 == toitemindex6) && (itemindex4 == toitemindex1)
|
||||
&& (itemindex5 == toitemindex2) && (itemindex6 == toitemindex3))
|
||||
{
|
||||
// 检验双方物品栏是否有空位
|
||||
// 检验双方物品栏是否有空位
|
||||
if ((strcmp(a, "I") == 0) && (itemindex1 != -1)){
|
||||
swapitem1--;
|
||||
swapitem2++;
|
||||
@ -1533,12 +1533,12 @@ int TRADE_CheckItembuf(int fd, int meindex, int toindex, int tofd, char* mychara
|
||||
if (!CHAR_CHECKINDEX(toindex)) return -1;
|
||||
if (swapitem2 > CHAR_findTotalEmptyItem(toindex))
|
||||
return -3;
|
||||
#ifdef _TRADESYSTEM2 // (不可开) Syu ADD 新交易系统
|
||||
//取得交换的金钱
|
||||
#ifdef _TRADESYSTEM2 // (不可开) Syu ADD 新交易系统
|
||||
//取得交换的金钱
|
||||
if ( myItem[20] != -1 ) gold1 += myItem[20] ;
|
||||
if ( myItem[41] != -1 ) gold2 += myItem[41] ;
|
||||
#else
|
||||
// 检查双方金钱
|
||||
// 检查双方金钱
|
||||
if ((strcmp(a, "G") == 0) && (itemindex1 != -1)) gold1 += itemindex1;
|
||||
if ((strcmp(b, "G") == 0) && (itemindex2 != -1)) gold1 += itemindex2;
|
||||
if ((strcmp(d, "G") == 0) && (itemindex4 != -1)) gold2 += itemindex4;
|
||||
@ -1551,8 +1551,8 @@ int TRADE_CheckItembuf(int fd, int meindex, int toindex, int tofd, char* mychara
|
||||
if ((gold2 + CHAR_getInt(meindex, CHAR_GOLD) - gold1) > CHAR_getMaxHaveGold( meindex) ) return -8;
|
||||
if ((gold1 + CHAR_getInt(toindex, CHAR_GOLD) - gold2) > CHAR_getMaxHaveGold( toindex)) return -9;
|
||||
|
||||
#ifdef _TRADESYSTEM2 // (不可开) Syu ADD 新交易系统
|
||||
//计算双方宠物的加减
|
||||
#ifdef _TRADESYSTEM2 // (不可开) Syu ADD 新交易系统
|
||||
//计算双方宠物的加减
|
||||
for ( ii = 15 ; ii < 20 ; ii ++ ) {
|
||||
if ( myItem[ii] != -1 ) {
|
||||
pet1--;
|
||||
@ -1566,7 +1566,7 @@ int TRADE_CheckItembuf(int fd, int meindex, int toindex, int tofd, char* mychara
|
||||
}
|
||||
}
|
||||
#else
|
||||
// 检查双方宠物
|
||||
// 检查双方宠物
|
||||
if ((strcmp(c, "P") == 0) && (itemindex3 != -1))
|
||||
{
|
||||
pet1--; pet2++;
|
||||
@ -1577,9 +1577,9 @@ int TRADE_CheckItembuf(int fd, int meindex, int toindex, int tofd, char* mychara
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef _TRADESYSTEM2 // (不可开) Syu ADD 新交易系统
|
||||
#ifdef _TRADESYSTEM2 // (不可开) Syu ADD 新交易系统
|
||||
if ((pet1 > 5) || (pet2 > 5)) return -10;
|
||||
//取得双方身上能放的宠物数量
|
||||
//取得双方身上能放的宠物数量
|
||||
for( ii = 0; ii < CHAR_MAXPETHAVE; ii ++ ) {
|
||||
if( CHAR_getCharPet( meindex , ii ) == -1 ) count ++ ;
|
||||
}
|
||||
@ -1594,8 +1594,8 @@ int TRADE_CheckItembuf(int fd, int meindex, int toindex, int tofd, char* mychara
|
||||
if ((pet1 == 1) && (CHAR_getCharPetElement( meindex) == -1)) return -10;
|
||||
if ((pet2 == 1) && (CHAR_getCharPetElement( toindex) == -1)) return -11;
|
||||
#endif
|
||||
#ifdef _TRADESYSTEM2 // (不可开) Syu ADD 新交易系统
|
||||
//取得所有欲交易的道具index
|
||||
#ifdef _TRADESYSTEM2 // (不可开) Syu ADD 新交易系统
|
||||
//取得所有欲交易的道具index
|
||||
for ( ii = 0 ; ii < 15 ; ii ++ ) {
|
||||
if ( myItem[ii] != -1 )
|
||||
Iitem1[ii] = CHAR_getItemIndex(meindex, myItem[ii]);
|
||||
@ -1620,8 +1620,8 @@ int TRADE_CheckItembuf(int fd, int meindex, int toindex, int tofd, char* mychara
|
||||
item5 = CHAR_getItemIndex(toindex, itemindex5);
|
||||
else item5 = -1;
|
||||
#endif
|
||||
#ifdef _TRADESYSTEM2 // (不可开) Syu ADD 新交易系统
|
||||
//取得欲交易宠物的index
|
||||
#ifdef _TRADESYSTEM2 // (不可开) Syu ADD 新交易系统
|
||||
//取得欲交易宠物的index
|
||||
for ( ii = 15 ; ii < 20 ; ii ++ ) {
|
||||
if ( myItem[ii] != -1 ) {
|
||||
if ( CHAR_getInt( meindex , CHAR_RIDEPET) == myItem[ii] )
|
||||
@ -1659,7 +1659,7 @@ int TRADE_CheckItembuf(int fd, int meindex, int toindex, int tofd, char* mychara
|
||||
|
||||
|
||||
|
||||
#ifdef _TRADESYSTEM2 // (不可开) Syu ADD 新交易系统
|
||||
#ifdef _TRADESYSTEM2 // (不可开) Syu ADD 新交易系统
|
||||
for ( ii = 0 ; ii < 15 ; ii ++ ) {
|
||||
if ( ITEM_getInt( Iitem1[ii] , ITEM_VANISHATDROP ) == 1 )
|
||||
return -12 ;
|
||||
@ -1675,8 +1675,8 @@ int TRADE_CheckItembuf(int fd, int meindex, int toindex, int tofd, char* mychara
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef _TRADESYSTEM2 // (不可开) Syu ADD 新交易系统
|
||||
//宠物等级能否交易判断
|
||||
#ifdef _TRADESYSTEM2 // (不可开) Syu ADD 新交易系统
|
||||
//宠物等级能否交易判断
|
||||
if( CHAR_getWorkInt( meindex, CHAR_PickAllPet) != TRUE ) {
|
||||
for ( ii = 0 ; ii < 5 ; ii ++ ) {
|
||||
if ( (ppet2[ii] != -1 ) && ( CHAR_getInt( ppet2[ii] , CHAR_LV )
|
||||
@ -1709,8 +1709,8 @@ int TRADE_CheckItembuf(int fd, int meindex, int toindex, int tofd, char* mychara
|
||||
return -14;
|
||||
}
|
||||
#endif
|
||||
#ifdef _TRADESYSTEM2 // (不可开) Syu ADD 新交易系统
|
||||
//是否为家族守护兽
|
||||
#ifdef _TRADESYSTEM2 // (不可开) Syu ADD 新交易系统
|
||||
//是否为家族守护兽
|
||||
for ( ii = 0 ; ii < 5 ; ii ++ ) {
|
||||
if ( ( ppet1[ii] != -1 ) && (CHAR_getInt(ppet1[ii], CHAR_PETFAMILY) == 1))
|
||||
return -15;
|
||||
@ -1724,8 +1724,8 @@ int TRADE_CheckItembuf(int fd, int meindex, int toindex, int tofd, char* mychara
|
||||
return -15;
|
||||
#endif
|
||||
|
||||
#ifdef _TRADESYSTEM2 // (不可开) Syu ADD 新交易系统
|
||||
// 交换玩家道具、金钱、宠物
|
||||
#ifdef _TRADESYSTEM2 // (不可开) Syu ADD 新交易系统
|
||||
// 交换玩家道具、金钱、宠物
|
||||
for ( ii = 0 ; ii < 15 ; ii ++ ) {
|
||||
TRADE_ChangeItem(meindex, toindex, "I", "I", Iitem1[ii], Iitem2[ii],
|
||||
myItem[ii], oppItem[ii]);
|
||||
@ -1745,7 +1745,7 @@ int TRADE_CheckItembuf(int fd, int meindex, int toindex, int tofd, char* mychara
|
||||
itemindex3, itemindex6);
|
||||
#endif
|
||||
|
||||
// 写入 trade.log
|
||||
// 写入 trade.log
|
||||
{
|
||||
char petname1[256], petname2[256];
|
||||
int pet1lv, pet2lv;
|
||||
@ -1803,10 +1803,10 @@ BOOL TRADE_ChangeItem(int meindex, int toindex, char *a, char *b,
|
||||
int gold1 = 0, gold2 = 0, eptitem = -1;
|
||||
if (CHAR_CHECKINDEX(meindex) == FALSE) return FALSE;
|
||||
if (CHAR_CHECKINDEX(toindex) == FALSE) return FALSE;
|
||||
// 道具 <-> 道具
|
||||
// 道具 <-> 道具
|
||||
if ((strcmp(a, "I") == 0) && (strcmp(b, "I") == 0))
|
||||
{
|
||||
// 无 <-> 道具
|
||||
// 无 <-> 道具
|
||||
if ((itemindex1 == -1) && (itemindex2 > 0))
|
||||
{
|
||||
if (ITEM_CHECKINDEX(item2) == FALSE) return FALSE;
|
||||
@ -1817,7 +1817,7 @@ BOOL TRADE_ChangeItem(int meindex, int toindex, char *a, char *b,
|
||||
ITEM_setWorkInt(item2, ITEM_WORKOBJINDEX, -1);
|
||||
CHAR_setItemIndex(toindex, itemindex2, -1);
|
||||
}
|
||||
// 道具 <-> 无
|
||||
// 道具 <-> 无
|
||||
else if ((itemindex1 > 0) && (itemindex2 == -1))
|
||||
{
|
||||
if (ITEM_CHECKINDEX(item1) == FALSE) return FALSE;
|
||||
@ -1828,7 +1828,7 @@ BOOL TRADE_ChangeItem(int meindex, int toindex, char *a, char *b,
|
||||
ITEM_setWorkInt(item1, ITEM_WORKOBJINDEX, -1);
|
||||
CHAR_setItemIndex(meindex, itemindex1, -1);
|
||||
}
|
||||
// 道具 <-> 道具
|
||||
// 道具 <-> 道具
|
||||
else if (itemindex1 > 0 && itemindex2 > 0)
|
||||
{
|
||||
if (ITEM_CHECKINDEX(item1) == FALSE) return FALSE;
|
||||
@ -1841,7 +1841,7 @@ BOOL TRADE_ChangeItem(int meindex, int toindex, char *a, char *b,
|
||||
CHAR_setItemIndex(meindex, itemindex1, item2);
|
||||
}
|
||||
}
|
||||
// 道具 <-> 金钱
|
||||
// 道具 <-> 金钱
|
||||
else if ((strcmp(a, "I") == 0) && (strcmp(b, "G") == 0))
|
||||
{
|
||||
if (itemindex1 > 0)
|
||||
@ -1862,7 +1862,7 @@ BOOL TRADE_ChangeItem(int meindex, int toindex, char *a, char *b,
|
||||
gold2 -= itemindex2;
|
||||
CHAR_setInt(toindex, CHAR_GOLD, gold2);
|
||||
}
|
||||
// 金钱 <-> 道具
|
||||
// 金钱 <-> 道具
|
||||
else if ((strcmp(a, "G") == 0) && (strcmp(b, "I") == 0))
|
||||
{
|
||||
if (itemindex2 > 0)
|
||||
@ -1883,7 +1883,7 @@ BOOL TRADE_ChangeItem(int meindex, int toindex, char *a, char *b,
|
||||
gold2 += itemindex1;
|
||||
CHAR_setInt(toindex, CHAR_GOLD, gold2);
|
||||
}
|
||||
// 金钱 <-> 金钱
|
||||
// 金钱 <-> 金钱
|
||||
else if ((strcmp(a, "G") == 0) && (strcmp(b, "G") == 0))
|
||||
{
|
||||
if (itemindex1 < 0) itemindex1 = 0;
|
||||
@ -1895,7 +1895,7 @@ BOOL TRADE_ChangeItem(int meindex, int toindex, char *a, char *b,
|
||||
gold2 = gold2 + itemindex2 - itemindex1;
|
||||
CHAR_setInt(meindex, CHAR_GOLD, gold2);
|
||||
}
|
||||
// 宠物 <-> 宠物
|
||||
// 宠物 <-> 宠物
|
||||
else if ((strcmp(a, "P") == 0) && (strcmp(b, "P") == 0))
|
||||
{
|
||||
char category[8];
|
||||
@ -1997,13 +1997,13 @@ BOOL TRADE_HandleItem( int meindex, int showindex, char *message, char *outmess)
|
||||
#endif
|
||||
strcpy( itemname, ITEM_getChar(itemindex, ITEM_SECRETNAME));//ITEM_NAME
|
||||
crushe = ITEM_getItemDamageCrusheED( itemindex);
|
||||
sprintf( token, "不会损坏"); //不会损坏
|
||||
sprintf( token, "不会损坏"); //不会损坏
|
||||
|
||||
if( crushe >= 0 ) snprintf( token, sizeof(token), "%d%%", crushe );
|
||||
char szTemp1[256];
|
||||
sprintf(szTemp1," ");
|
||||
#ifdef _TRADE_ITEM_FIX
|
||||
if(getTradeItemFix()==1 && ( ITEM_getInt(itemindex,ITEM_MERGEFLG)==TRUE || strstr(ITEM_getChar(itemindex,ITEM_NAME),"合成")!=NULL ) ){
|
||||
if(getTradeItemFix()==1 && ( ITEM_getInt(itemindex,ITEM_MERGEFLG)==TRUE || strstr(ITEM_getChar(itemindex,ITEM_NAME),"合成")!=NULL ) ){
|
||||
char attnum[16];
|
||||
sprintf(attnum,"");
|
||||
if(ITEM_getInt(itemindex,ITEM_MODIFYATTACK)!=0){
|
||||
@ -2015,23 +2015,23 @@ BOOL TRADE_HandleItem( int meindex, int showindex, char *message, char *outmess)
|
||||
}
|
||||
}
|
||||
if(strcmp(szTemp1," ")==0){
|
||||
sprintf(szTemp1,"攻%s%d%s ",(ITEM_getInt(itemindex,ITEM_MODIFYATTACK)>=0)?"+":"",ITEM_getInt(itemindex,ITEM_MODIFYATTACK),attnum);
|
||||
sprintf(szTemp1,"攻%s%d%s ",(ITEM_getInt(itemindex,ITEM_MODIFYATTACK)>=0)?"+":"",ITEM_getInt(itemindex,ITEM_MODIFYATTACK),attnum);
|
||||
}else{
|
||||
sprintf(szTemp1,"%s攻%s%d%s ",szTemp1,(ITEM_getInt(itemindex,ITEM_MODIFYATTACK)>=0)?"+":"",ITEM_getInt(itemindex,ITEM_MODIFYATTACK),attnum);
|
||||
sprintf(szTemp1,"%s攻%s%d%s ",szTemp1,(ITEM_getInt(itemindex,ITEM_MODIFYATTACK)>=0)?"+":"",ITEM_getInt(itemindex,ITEM_MODIFYATTACK),attnum);
|
||||
}
|
||||
}
|
||||
if(ITEM_getInt(itemindex,ITEM_MODIFYDEFENCE)!=0){
|
||||
if(strcmp(szTemp1," ")==0){
|
||||
sprintf(szTemp1,"防%s%d ",(ITEM_getInt(itemindex,ITEM_MODIFYDEFENCE)>=0)?"+":"",ITEM_getInt(itemindex,ITEM_MODIFYDEFENCE));
|
||||
sprintf(szTemp1,"防%s%d ",(ITEM_getInt(itemindex,ITEM_MODIFYDEFENCE)>=0)?"+":"",ITEM_getInt(itemindex,ITEM_MODIFYDEFENCE));
|
||||
}else{
|
||||
sprintf(szTemp1,"%s防%s%d ",szTemp1,(ITEM_getInt(itemindex,ITEM_MODIFYDEFENCE)>=0)?"+":"",ITEM_getInt(itemindex,ITEM_MODIFYDEFENCE));
|
||||
sprintf(szTemp1,"%s防%s%d ",szTemp1,(ITEM_getInt(itemindex,ITEM_MODIFYDEFENCE)>=0)?"+":"",ITEM_getInt(itemindex,ITEM_MODIFYDEFENCE));
|
||||
}
|
||||
}
|
||||
if(ITEM_getInt(itemindex,ITEM_MODIFYQUICK)!=0){
|
||||
if(strcmp(szTemp1," ")==0){
|
||||
sprintf(szTemp1,"敏%s%d ",(ITEM_getInt(itemindex,ITEM_MODIFYQUICK)>=0)?"+":"",ITEM_getInt(itemindex,ITEM_MODIFYQUICK));
|
||||
sprintf(szTemp1,"敏%s%d ",(ITEM_getInt(itemindex,ITEM_MODIFYQUICK)>=0)?"+":"",ITEM_getInt(itemindex,ITEM_MODIFYQUICK));
|
||||
}else{
|
||||
sprintf(szTemp1,"%s敏%s%d ",szTemp1,(ITEM_getInt(itemindex,ITEM_MODIFYQUICK)>=0)?"+":"",ITEM_getInt(itemindex,ITEM_MODIFYQUICK));
|
||||
sprintf(szTemp1,"%s敏%s%d ",szTemp1,(ITEM_getInt(itemindex,ITEM_MODIFYQUICK)>=0)?"+":"",ITEM_getInt(itemindex,ITEM_MODIFYQUICK));
|
||||
}
|
||||
}
|
||||
if(ITEM_getInt(itemindex,ITEM_MAGICID)>0){
|
||||
@ -2052,7 +2052,7 @@ BOOL TRADE_HandleItem( int meindex, int showindex, char *message, char *outmess)
|
||||
sprintf(szTemp1,"%s",ITEM_getChar(itemindex,ITEM_EFFECTSTRING));
|
||||
char newitemname[128];
|
||||
memset(newitemname,0,sizeof(newitemname));
|
||||
if(strstr(ITEM_getChar( itemindex, ITEM_NAME),"经验搜集丹")!=NULL)
|
||||
if(strstr(ITEM_getChar( itemindex, ITEM_NAME),"经验搜集丹")!=NULL)
|
||||
strcpy(newitemname, ITEM_getChar( itemindex, ITEM_SECRETNAME));
|
||||
else
|
||||
strcpy(newitemname , ITEM_getChar( itemindex, ITEM_NAME));
|
||||
@ -2169,12 +2169,12 @@ BOOL TRADE_CheckTradeList( int meindex, STradeList *temp1, int toindex, STradeLi
|
||||
int ToSurplus=0, ToNeeds=0, ToMaxPile;
|
||||
|
||||
|
||||
MeMaxPile = CHAR_getMyMaxPilenum( meindex);//最大堆叠数
|
||||
MeMaxPile = CHAR_getMyMaxPilenum( meindex);//最大堆叠数
|
||||
ToMaxPile = CHAR_getMyMaxPilenum( toindex);
|
||||
|
||||
MeSurplus = CHAR_findSurplusItemBox( meindex);
|
||||
ToSurplus = CHAR_findSurplusItemBox( toindex);
|
||||
//道具
|
||||
//道具
|
||||
ToNeeds=0; MeNeeds=0;
|
||||
for( i=0; i<15; i++ ){
|
||||
int pilenum, itemindex;
|
||||
@ -2209,31 +2209,31 @@ BOOL TRADE_CheckTradeList( int meindex, STradeList *temp1, int toindex, STradeLi
|
||||
if(CHAR_getInt(meindex,CHAR_FLOOR)==50000 && CHAR_getInt(toindex,CHAR_FLOOR)==50000 )
|
||||
{
|
||||
if( MeSurplus < (MeNeeds+ToNeeds) ){
|
||||
CHAR_talkToCli( meindex, -1, "交易後物品栏位不足。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( toindex, -1, "对方交易後物品栏位不足。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( meindex, -1, "交易後物品栏位不足。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( toindex, -1, "对方交易後物品栏位不足。", CHAR_COLORYELLOW);
|
||||
return FALSE;
|
||||
}
|
||||
if( ToSurplus < (ToNeeds+MeNeeds) ){
|
||||
CHAR_talkToCli( toindex, -1, "交易後物品栏位不足。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( meindex, -1, "对方交易後物品栏位不足。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( toindex, -1, "交易後物品栏位不足。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( meindex, -1, "对方交易後物品栏位不足。", CHAR_COLORYELLOW);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if( MeSurplus < MeNeeds ){
|
||||
CHAR_talkToCli( meindex, -1, "交易後物品栏位不足。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( toindex, -1, "对方交易後物品栏位不足。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( meindex, -1, "交易後物品栏位不足。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( toindex, -1, "对方交易後物品栏位不足。", CHAR_COLORYELLOW);
|
||||
return FALSE;
|
||||
}
|
||||
if( ToSurplus < ToNeeds ){
|
||||
CHAR_talkToCli( toindex, -1, "交易後物品栏位不足。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( meindex, -1, "对方交易後物品栏位不足。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( toindex, -1, "交易後物品栏位不足。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( meindex, -1, "对方交易後物品栏位不足。", CHAR_COLORYELLOW);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
//宠物
|
||||
//宠物
|
||||
MeSurplus = CHAR_findSurplusPetBox( meindex);
|
||||
ToSurplus = CHAR_findSurplusPetBox( toindex);
|
||||
ToNeeds=0; MeNeeds=0;
|
||||
@ -2256,32 +2256,32 @@ BOOL TRADE_CheckTradeList( int meindex, STradeList *temp1, int toindex, STradeLi
|
||||
if(CHAR_getInt(meindex,CHAR_FLOOR)==50000 && CHAR_getInt(toindex,CHAR_FLOOR)==50000 )
|
||||
{
|
||||
if( MeSurplus < (MeNeeds+ToNeeds) ){
|
||||
CHAR_talkToCli( meindex, -1, "交易後宠物栏位不足。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( toindex, -1, "对方交易後宠物栏位不足。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( meindex, -1, "交易後宠物栏位不足。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( toindex, -1, "对方交易後宠物栏位不足。", CHAR_COLORYELLOW);
|
||||
return FALSE;
|
||||
}
|
||||
if( ToSurplus < (ToNeeds+MeNeeds) ){
|
||||
CHAR_talkToCli( meindex, -1, "对方交易後宠物栏位不足。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( toindex, -1, "交易後宠物栏位不足。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( meindex, -1, "对方交易後宠物栏位不足。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( toindex, -1, "交易後宠物栏位不足。", CHAR_COLORYELLOW);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if( MeSurplus < MeNeeds ){
|
||||
CHAR_talkToCli( meindex, -1, "交易後宠物栏位不足。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( toindex, -1, "对方交易後宠物栏位不足。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( meindex, -1, "交易後宠物栏位不足。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( toindex, -1, "对方交易後宠物栏位不足。", CHAR_COLORYELLOW);
|
||||
return FALSE;
|
||||
}
|
||||
if( ToSurplus < ToNeeds ){
|
||||
CHAR_talkToCli( meindex, -1, "对方交易後宠物栏位不足。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( toindex, -1, "交易後宠物栏位不足。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( meindex, -1, "对方交易後宠物栏位不足。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( toindex, -1, "交易後宠物栏位不足。", CHAR_COLORYELLOW);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//金钱
|
||||
//金钱
|
||||
MeMaxPile = CHAR_getMaxHaveGold( meindex);
|
||||
ToMaxPile = CHAR_getMaxHaveGold( toindex);
|
||||
MeSurplus = MeMaxPile - CHAR_getInt( meindex, CHAR_GOLD);
|
||||
@ -2294,26 +2294,26 @@ BOOL TRADE_CheckTradeList( int meindex, STradeList *temp1, int toindex, STradeLi
|
||||
if(CHAR_getInt(meindex,CHAR_FLOOR)==50000 && CHAR_getInt(toindex,CHAR_FLOOR)==50000 )
|
||||
{
|
||||
if( MeSurplus < (MeNeeds+ToNeeds) ){
|
||||
CHAR_talkToCli( meindex, -1, "交易後石币超过上限。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( toindex, -1, "对方交易後石币超过上限。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( meindex, -1, "交易後石币超过上限。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( toindex, -1, "对方交易後石币超过上限。", CHAR_COLORYELLOW);
|
||||
return FALSE;
|
||||
}
|
||||
if( ToSurplus < (ToNeeds+MeNeeds) ){
|
||||
CHAR_talkToCli( meindex, -1, "对方交易後石币超过上限。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( toindex, -1, "交易後石币超过上限。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( meindex, -1, "对方交易後石币超过上限。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( toindex, -1, "交易後石币超过上限。", CHAR_COLORYELLOW);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if( MeSurplus < MeNeeds ){
|
||||
CHAR_talkToCli( meindex, -1, "交易後石币超过上限。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( toindex, -1, "对方交易後石币超过上限。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( meindex, -1, "交易後石币超过上限。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( toindex, -1, "对方交易後石币超过上限。", CHAR_COLORYELLOW);
|
||||
return FALSE;
|
||||
}
|
||||
if( ToSurplus < ToNeeds ){
|
||||
CHAR_talkToCli( meindex, -1, "对方交易後石币超过上限。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( toindex, -1, "交易後石币超过上限。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( meindex, -1, "对方交易後石币超过上限。", CHAR_COLORYELLOW);
|
||||
CHAR_talkToCli( toindex, -1, "交易後石币超过上限。", CHAR_COLORYELLOW);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
@ -8,7 +8,7 @@
|
||||
|
||||
|
||||
/*------------------------------------------------------------
|
||||
*白巧件玄及缙及烂聒
|
||||
*color of front
|
||||
*------------------------------------------------------------*/
|
||||
typedef enum
|
||||
{
|
||||
@ -24,14 +24,14 @@ typedef enum
|
||||
CHAR_COLORGREEN2,
|
||||
CHAR_COLORBLACK,
|
||||
}CHAR_COLOR;
|
||||
/*====================平乓仿及综岳卞楮允月楮醒====================*/
|
||||
/*====================function of creat new character====================*/
|
||||
void CHAR_createNewChar( int clifd, int dataplacenum,char* charname ,
|
||||
int imgno,int faceimgno,
|
||||
int vital,int str,int tgh,int dex,
|
||||
int earth,int water,int fire,int wind,
|
||||
int hometown , char *cdkey );
|
||||
|
||||
/*====================平乓仿及夫弘奶件====================*/
|
||||
/*====================character login====================*/
|
||||
|
||||
void CHAR_login( int clifd, char* data, int saveindex );
|
||||
|
||||
@ -40,8 +40,8 @@ BOOL _CHAR_warpToSpecificPoint( char *file, int line,
|
||||
int charaindex, int fl, int x, int y);
|
||||
|
||||
|
||||
/*====================平乓仿及本□皮====================*/
|
||||
/*====================平乓仿及夫弘失它玄====================*/
|
||||
/*====================character save====================*/
|
||||
/*====================character log out====================*/
|
||||
BOOL CHAR_charSaveFromConnectAndChar( int fd,Char* ch, int unlock );
|
||||
BOOL CHAR_charSaveFromConnect( int charaindex,int unlock );
|
||||
#define CHAR_logout( charindex, save) _CHAR_logout( __FILE__, __LINE__, charindex, save)
|
||||
@ -50,24 +50,24 @@ BOOL _CHAR_logout( char *file, int line, int charindex, BOOL save);
|
||||
/*====================watch event ====================*/
|
||||
void CHAR_sendWatchEvent( int objindex, int chac, int* opt,int optlen,BOOL myflg );
|
||||
|
||||
/*====================旦平伙====================*/
|
||||
/*====================skill====================*/
|
||||
BOOL CHAR_Skillupsend(int charaindex );
|
||||
void CHAR_SkillUp( int charaindex, int skillid );
|
||||
void CHAR_useSkill( int charaindex, int dir ,int skindex );
|
||||
|
||||
typedef enum
|
||||
{
|
||||
CHAR_WALKSUCCESSED, /* 岳 */
|
||||
CHAR_WALKSYSTEMERROR, /* 扑旦 丞巨仿□ 及index民尼永弁卞
|
||||
CHAR_WALKSUCCESSED, /* successed */
|
||||
CHAR_WALKSYSTEMERROR, /* system error's array of index check
|
||||
* ·òÔȾ®¾®ÔÈÐ×Îç¾® */
|
||||
CHAR_WALKEXTEND, /* 区左□田□仄化汹仇丹午仄凶[NPC卞及心*/
|
||||
CHAR_WALKHITOBJECT, /* 窒井 卞癫匀化}汹仃卅井匀凶 */
|
||||
CHAR_WALKPREWALK, /* prewalk奶矛件玄匹汹仃卅井匀凶( 檗祭 ) */
|
||||
CHAR_WALKDIE, /* 韶氏匹中化汹仃卅中 */
|
||||
CHAR_WALK1357, /* 标户 轾卞汹仇丹午仄化汹仃卅井匀凶 */
|
||||
CHAR_WALKEXTEND, /* overflow of walking.just for npc*/
|
||||
CHAR_WALKHITOBJECT, /* cant walk cause hit object */
|
||||
CHAR_WALKPREWALK, /* cant walk cause prewalk event */
|
||||
CHAR_WALKDIE, /* cant walk cause death */
|
||||
CHAR_WALK1357, /* cant walk to 1357 (斜方向) */
|
||||
}CHAR_WALKRET;
|
||||
|
||||
/*====================平乓仿及啖 卞楮允月楮醒====================*/
|
||||
/*====================function of character's walk====================*/
|
||||
void CHAR_ctodirmode(char moji , int* dir , int* mode);
|
||||
INLINE void CHAR_getDXDY( int dir , int* dx, int* dy );
|
||||
INLINE int CHAR_getDX( int dir );
|
||||
@ -273,27 +273,27 @@ typedef enum
|
||||
|
||||
typedef enum
|
||||
{
|
||||
CHAR_WINDOWTYPE_RETURNTOELDER=-1, /* 赢 尺 月它奴件玉它 */
|
||||
CHAR_WINDOWTYPE_RESURRECTION=-2, /* 汊唾允月它奴件玉它 */
|
||||
CHAR_WINDOWTYPE_RETURNTOELDER=-1, /* 返回长老窗口 */
|
||||
CHAR_WINDOWTYPE_RESURRECTION=-2, /* 复活窗口 */
|
||||
|
||||
CHAR_WINDOWTYPE_SELECTBATTLE = 1, /* 月爵 毛蓟 允月它奴件玉它 */
|
||||
CHAR_WINDOWTYPE_SELECTDUEL = 2, /* 月DUEL毛蓟 允月它奴件玉它 */
|
||||
CHAR_WINDOWTYPE_SELECTTRADECARD = 3, /* 铜跟晶毛蓟 允月它奴件玉它 */
|
||||
CHAR_WINDOWTYPE_SELECTPARTY = 4, /* 由□ 奴毛蓟 允月它奴件玉它 */
|
||||
CHAR_WINDOWTYPE_SELECTBATTLEWATCH = 5, /* 棋爵毛蓟 允月它奴件玉它 */
|
||||
CHAR_WINDOWTYPE_MICMESSAGE = 6, /* MICNPC毛银匀化请月它奴件玉它 */
|
||||
CHAR_WINDOWTYPE_SELECTBATTLE = 1, /* 进入战斗选择窗口 */
|
||||
CHAR_WINDOWTYPE_SELECTDUEL = 2, /* 进入决斗选择窗口 DUEL = 决斗 */
|
||||
CHAR_WINDOWTYPE_SELECTTRADECARD = 3, /* 交换名片窗口 */
|
||||
CHAR_WINDOWTYPE_SELECTPARTY = 4, /* 选择团队窗口 */
|
||||
CHAR_WINDOWTYPE_SELECTBATTLEWATCH = 5, /* 选择观战窗口 */
|
||||
CHAR_WINDOWTYPE_MICMESSAGE = 6, /* 使用MICNPC提示窗口 */
|
||||
|
||||
// CoolFish: Trade 2001/4/18
|
||||
CHAR_WINDOWTYPE_SELECTTRADE = 7, /* ½»Ò× Window */
|
||||
|
||||
CHAR_WINDOWTYPE_SELECTRENAMEITEM_PAGE1 = 10, /* 蟆毛 凳允月失奶 丞毛蓟 允月它奴件玉它 */
|
||||
CHAR_WINDOWTYPE_SELECTRENAMEITEM_PAGE2 = 11, /* 蟆毛 凳允月失奶 丞毛蓟 允月它奴件玉它 */
|
||||
CHAR_WINDOWTYPE_SELECTRENAMEITEM_PAGE3 = 12, /* 蟆毛 凳允月失奶 丞毛蓟 允月它奴件玉它 */
|
||||
CHAR_WINDOWTYPE_SELECTRENAMEITEM_PAGE4 = 13, /* 蟆毛 凳允月失奶 丞毛蓟 允月它奴件玉它 */
|
||||
CHAR_WINDOWTYPE_SELECTRENAMEITEM_RENAME = 14, /* 蟆毛 允月它奴件玉它 */
|
||||
CHAR_WINDOWTYPE_SELECTRENAMEITEM_RENAME_ATTENTION = 15, /* 蟆毛 允月它奴件玉它 */
|
||||
CHAR_WINDOWTYPE_SELECTRENAMEITEM_PAGE1 = 10, /* 选择更改名称道具 */
|
||||
CHAR_WINDOWTYPE_SELECTRENAMEITEM_PAGE2 = 11, /* 选择更改名称道具 */
|
||||
CHAR_WINDOWTYPE_SELECTRENAMEITEM_PAGE3 = 12, /* 选择更改名称道具 */
|
||||
CHAR_WINDOWTYPE_SELECTRENAMEITEM_PAGE4 = 13, /* 选择更改名称道具 */
|
||||
CHAR_WINDOWTYPE_SELECTRENAMEITEM_RENAME = 14, /* 输入名字窗口 */
|
||||
CHAR_WINDOWTYPE_SELECTRENAMEITEM_RENAME_ATTENTION = 15, /* 输入名字窗口 */
|
||||
|
||||
CHAR_WINDOWTYPE_DENGON = 50, /* 鳗蜕 */
|
||||
CHAR_WINDOWTYPE_DENGON = 50, /* 留言板 */
|
||||
|
||||
CHAR_WINDOWTYPE_WINDOWMAN_START = 100,
|
||||
CHAR_WINDOWTYPE_WINDOWMAN_STARTMSG = CHAR_WINDOWTYPE_WINDOWMAN_START,
|
||||
@ -683,10 +683,10 @@ void CHAR_PetAddVariableAi( int petindex, int iValue );
|
||||
void CHAR_PartyUpdate( int charaindex, int senddata );
|
||||
char *CHAR_getUseName( int charaindex );
|
||||
char *CHAR_getUseID( int charaindex );
|
||||
EXTERN int EnemyMoveNum; /* 凛卞 嫖 仃月衬及醒 */
|
||||
EXTERN int EnemyMoveNum; /* 同时最大可移动敌人数量 */
|
||||
|
||||
#define DB_DUELPOINT "db_duel" // 犯亘巨伙禾奶件玄犯□正矛□旦
|
||||
#define DB_ADDRESSBOOK "db_addressbook" // 失玉伊旦皮永弁犯□正矛□旦
|
||||
#define DB_DUELPOINT "db_duel" // DP点数 数据库
|
||||
#define DB_ADDRESSBOOK "db_addressbook" // 地址集数据库
|
||||
|
||||
BOOL CHAR_send_DpDBUpdate( int charaindex );
|
||||
BOOL CHAR_send_DpDBUpdate_AddressBook( int charaindex, int mode );
|
||||
@ -722,15 +722,15 @@ int CHAR_CHECKJOINENEMY( int index);
|
||||
#define CHAR_EFFECT_SETTINGBUFFER 256
|
||||
typedef struct tagCHAR_effectsetting
|
||||
{
|
||||
int floor; // 白夫失
|
||||
int effect; // 梢请 寞
|
||||
int level; // 梢请及伊矛伙[ 蜇及雄今[
|
||||
int sendflg; // 憎巨白尼弁玄毛霜匀凶井升丹井[
|
||||
char month[CHAR_EFFECT_SETTINGBUFFER]; // 垫允月畸
|
||||
char day[CHAR_EFFECT_SETTINGBUFFER]; // 垫允月
|
||||
char hour[CHAR_EFFECT_SETTINGBUFFER]; // 垫允月凛棉
|
||||
char min[CHAR_EFFECT_SETTINGBUFFER]; // 垫允月坌
|
||||
char expire[CHAR_EFFECT_SETTINGBUFFER]; // 垫仄化中月赢今[(
|
||||
int floor; // 楼层数
|
||||
int effect; // 演出号
|
||||
int level; // 演出级别,表现强度
|
||||
int sendflg; // 是否发送了effect
|
||||
char month[CHAR_EFFECT_SETTINGBUFFER]; // 运行月份
|
||||
char day[CHAR_EFFECT_SETTINGBUFFER]; // 运行日期
|
||||
char hour[CHAR_EFFECT_SETTINGBUFFER]; // 运行小时
|
||||
char min[CHAR_EFFECT_SETTINGBUFFER]; // 运行分钟
|
||||
char expire[CHAR_EFFECT_SETTINGBUFFER]; // 共运行了多少秒
|
||||
|
||||
}CHAR_effectsetting;
|
||||
|
||||
|
72
main.c
72
main.c
@ -24,7 +24,7 @@
|
||||
#ifdef _ALLBLUES_LUA
|
||||
#include "mylua/ablua.h"
|
||||
#endif
|
||||
#ifdef _CHATROOMPROTOCOL // (不可开) Syu ADD 聊天室频道
|
||||
#ifdef _CHATROOMPROTOCOL // (不可开) Syu ADD 聊天室频道
|
||||
#include "chatroom.h"
|
||||
#endif
|
||||
|
||||
@ -44,7 +44,7 @@ extern char *DebugMainFunction;
|
||||
#endif
|
||||
|
||||
#ifdef _ANGEL_SUMMON
|
||||
#define ANGELTIMELIMIT 3*24*60*60 // 完成任务时限(秒)
|
||||
#define ANGELTIMELIMIT 3*24*60*60 // 完成任务时限(秒)
|
||||
int AngelReady =0;
|
||||
int AngelTimelimit = ANGELTIMELIMIT;
|
||||
time_t AngelNextTime;
|
||||
@ -61,7 +61,7 @@ int main( int argc , char** argv, char** env )
|
||||
|
||||
//if(attestation()<1)
|
||||
// {
|
||||
// print("无法通过正版验证!具体请联系购买者!\n");
|
||||
// print("无法通过正版验证!具体请联系购买者!\n");
|
||||
// exit(0);
|
||||
// }
|
||||
//if (strcmp(getlocaltime(), TimeLimitLocal)>0)exit(0);
|
||||
@ -69,7 +69,7 @@ int main( int argc , char** argv, char** env )
|
||||
system("ulimit -HSn 2048");
|
||||
#endif
|
||||
|
||||
/* とりあえず時間を設定しておく */
|
||||
/* とりあえず時間を設定しておく */
|
||||
setNewTime();
|
||||
|
||||
/* if ( argc > 1 && 0==strcmp(argv[1],"-v"))
|
||||
@ -83,7 +83,7 @@ int main( int argc , char** argv, char** env )
|
||||
|
||||
LoadAnnounce(); // Arminius 7.12 loginannounce
|
||||
|
||||
/* 初期設定 */
|
||||
/* 初期設定 */
|
||||
memcpy( &tmOld, localtime( (time_t *)&NowTime.tv_sec), sizeof( tmNow ) );
|
||||
|
||||
sasql_init();
|
||||
@ -110,19 +110,19 @@ int main( int argc , char** argv, char** env )
|
||||
|
||||
void mainloop( void )
|
||||
{
|
||||
print("初始化NPC...");
|
||||
print("初始化NPC...");
|
||||
NPC_generateLoop( 1 );
|
||||
print("完成\n");
|
||||
print("初始化signal1...");
|
||||
print("完成\n");
|
||||
print("初始化signal1...");
|
||||
signal(SIGUSR1,sigusr1);
|
||||
print("完成\n");
|
||||
print("初始化signal2...");
|
||||
print("完成\n");
|
||||
print("初始化signal2...");
|
||||
signal(SIGUSR2,sigusr2);
|
||||
print("完成\n");
|
||||
print("完成\n");
|
||||
#ifdef _MAP_WARPPOINT
|
||||
print("初始化地图传送点...");
|
||||
print("初始化地图传送点...");
|
||||
MAPPOINT_InitMapWarpPoint();
|
||||
print("完成\n");
|
||||
print("完成\n");
|
||||
if( !MAPPOINT_loadMapWarpPoint() ){
|
||||
return;
|
||||
}
|
||||
@ -131,51 +131,51 @@ void mainloop( void )
|
||||
#ifdef _ASSESS_SYSEFFICACY
|
||||
Assess_InitSysEfficacy();
|
||||
#endif
|
||||
#ifdef _CHATROOMPROTOCOL // (不可开) Syu ADD 聊天室频道
|
||||
print("初始化聊天室频...");
|
||||
#ifdef _CHATROOMPROTOCOL // (不可开) Syu ADD 聊天室频道
|
||||
print("初始化聊天室频...");
|
||||
InitChatRoom();
|
||||
print("完成\n");
|
||||
print("完成\n");
|
||||
#endif
|
||||
#ifdef _CHANNEL_MODIFY
|
||||
print("初始化职业频道...");
|
||||
if(!InitOccChannel()) return; // 初始化职业频道
|
||||
print("完成\n");
|
||||
print("初始化职业频道...");
|
||||
if(!InitOccChannel()) return; // 初始化职业频道
|
||||
print("完成\n");
|
||||
#endif
|
||||
#ifdef _ANGEL_SUMMON
|
||||
print("初始化精灵召奂时间...");
|
||||
print("初始化精灵召奂时间...");
|
||||
AngelReady = 0;
|
||||
#ifdef _ANGEL_TIME
|
||||
AngelNextTime = time(NULL) + getAngelPlayerTime();
|
||||
#else
|
||||
AngelNextTime = time(NULL) + 1*60;
|
||||
#endif
|
||||
print("完成\n");
|
||||
print("完成\n");
|
||||
#endif
|
||||
#ifdef _JZ_NEWSCRIPT_LUA
|
||||
print("初始化LNS引擎...");
|
||||
print("初始化LNS引擎...");
|
||||
NPC_Lua_Init(getLuaFile());
|
||||
print("完成\n");
|
||||
print("完成\n");
|
||||
#endif
|
||||
|
||||
#ifdef _ITEM_LUA
|
||||
print("初始化道具LUA引擎...");
|
||||
print("初始化道具LUA引擎...");
|
||||
int itemluaflg=ITEM_LuaInit(getitemluafile());
|
||||
if(itemluaflg==TRUE){
|
||||
print("完成\n");
|
||||
print("完成\n");
|
||||
}else{
|
||||
print("失败\n");
|
||||
print("失败\n");
|
||||
}
|
||||
#endif
|
||||
#ifdef _ALLBLUES_LUA
|
||||
print("初始化LUA脚本...");
|
||||
print("初始化LUA脚本...");
|
||||
LoadAllbluesLUA("data/ablua");
|
||||
print("完成\n");
|
||||
print("完成\n");
|
||||
#endif
|
||||
//if (strcmp(getlocaltime(), TimeLimitLocal)>0)exit(0);
|
||||
//#ifdef _ALLDOMAN
|
||||
// print("初始化英雄表列...");
|
||||
// print("初始化英雄表列...");
|
||||
// InitHeroList();
|
||||
// print("完成\n");
|
||||
// print("完成\n");
|
||||
//#endif
|
||||
|
||||
int itime=0;
|
||||
@ -202,7 +202,7 @@ Assess_SysEfficacy( 0 );
|
||||
}
|
||||
|
||||
setNewTime();
|
||||
#ifdef _ASSESS_SYSEFFICACY_SUB //显示LOOP时间
|
||||
#ifdef _ASSESS_SYSEFFICACY_SUB //显示LOOP时间
|
||||
//Assess_SysEfficacy_sub( 0, 1);
|
||||
#ifdef _GMSV_DEBUG
|
||||
DebugMainFunction="netloop_faster";
|
||||
@ -291,8 +291,8 @@ static void sendmsg_toall( char *msg )
|
||||
}
|
||||
static void ShutdownProc( void)
|
||||
{
|
||||
#define SYSINFO_SHUTDOWN_MSG "%d 分钟后开始进行系统停机维护, 请大家提前下线以免数据丢失。"
|
||||
#define SYSINFO_SHUTDOWN_MSG_COMP "服务器已关闭。"
|
||||
#define SYSINFO_SHUTDOWN_MSG "%d 分钟后开始进行系统停机维护, 请大家提前下线以免数据丢失。"
|
||||
#define SYSINFO_SHUTDOWN_MSG_COMP "服务器已关闭。"
|
||||
int diff,hun;
|
||||
|
||||
diff = NowTime.tv_sec - SERVSTATE_getShutdown();
|
||||
@ -386,20 +386,20 @@ void AngelReadyProc()
|
||||
if( player_online <= 10 )
|
||||
#endif
|
||||
{
|
||||
// print("\n精灵召唤:线上人数不足=%d\n", player_online );
|
||||
// print("\n精灵召唤:线上人数不足=%d\n", player_online );
|
||||
return;
|
||||
}
|
||||
|
||||
AngelReady = 1;
|
||||
//AngelNextTime = min( (int)(10000/player_online), 100)*60 + (unsigned long)nowTime;
|
||||
#ifdef _ANGEL_TIME
|
||||
AngelNextTime = min( (int)(getAngelPlayerTime()/player_online) + 1, 100)*60 + (unsigned long)nowTime;//精灵召唤时间为什么一直显示?
|
||||
AngelNextTime = min( (int)(getAngelPlayerTime()/player_online) + 1, 100)*60 + (unsigned long)nowTime;//精灵召唤时间为什么一直显示?
|
||||
#else
|
||||
AngelNextTime = min( (int)(5000/player_online), 100)*60 + (unsigned long)nowTime;
|
||||
#endif
|
||||
|
||||
temptime = localtime( &AngelNextTime );
|
||||
sprintf( msg, "\r精灵召唤:产生一位缺额 下次产生时间=(%d/%d %d:%d) 目前人数=%d",
|
||||
sprintf( msg, "\r精灵召唤:产生一位缺额 下次产生时间=(%d/%d %d:%d) 目前人数=%d",
|
||||
temptime->tm_mon+1, temptime->tm_mday, temptime->tm_hour, temptime->tm_min, player_online );
|
||||
print( msg);
|
||||
//LogAngel( msg);
|
||||
|
Loading…
Reference in New Issue
Block a user