2017/1/13

battle文件夹-日语注释修改完毕
This commit is contained in:
chuyiwen 2017-01-13 06:24:03 +09:00
parent bea5ac05b3
commit e53aa766d9
34 changed files with 7394 additions and 7381 deletions

File diff suppressed because it is too large Load Diff

View File

@ -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;
}

View File

@ -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

View File

@ -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

View File

@ -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;
}

File diff suppressed because it is too large Load Diff

View File

@ -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;
}

File diff suppressed because it is too large Load Diff

View File

@ -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;

View File

@ -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

File diff suppressed because it is too large Load Diff

View File

@ -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 ++ ) {

File diff suppressed because it is too large Load Diff

View File

@ -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 01
*
* 仿
*
* index int Char匹及index
* dir int
* mode int 01
*
* 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

File diff suppressed because it is too large Load Diff

View File

@ -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");

View File

@ -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 */

View File

@ -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
},

View File

@ -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 )
{

View File

@ -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);

View File

@ -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*/

File diff suppressed because it is too large Load Diff

View File

@ -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","","",""};
char numbuf[][5]={"","","","","","","","","",""};
char jiabuf[][5]={"","","","","","",""};
char jianbuf[][5]={"","","-","","-","",""};
char chengbuf[][5]={"","*","x","X","","",""};
char numbuf[][5]={"","","","","","","","","",""};
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 );
}

View File

@ -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 ),

View File

@ -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 ),

View File

@ -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;

View File

@ -18,7 +18,7 @@
#include "configfile.h"
/*====================惫寞 ====================*/
/*====================惫寞 ====================*/
static int TITLE_IntCheck( int charaindex,int elem, int *data, int flg);
static int TITLE_WorkIntCheck( int charaindex,int elem, int *data, int flg);
static int TITLE_ItemCheck( int charaindex,int elem, int *data, int flg);
@ -28,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,MAXMPATK,DEF
/* 银尹月由仿丢□正
* STR,TGH,MAXMPATK,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)
{

View File

@ -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;
}
}

View File

@ -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
View File

@ -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);