stoneage8.5/石器时代服务器端最新完整源代码/Serv/gmsv/longzoro/move.c
anson1788 a5b185b7ef Revert "re upload"
This reverts commit 274b7d169c.
2020-06-23 15:23:51 +08:00

111 lines
2.9 KiB
C

#include <string.h>
#include "version.h"
#include "longzoro/move.h"
#include "char_base.h"
#include "char.h"
#include "autil.h"
#ifdef _TALK_MOVE_FLOOR
Talk_Move_Floor_t talkmovefloor[MAXTALKMOVEFLOOR];
BOOL talk_move_map(int charaindex, char *messageeraseescape)
{
if(messageeraseescape[0] == '/' && messageeraseescape[1] == 'm' && messageeraseescape[2] == 'o' && messageeraseescape[3] == 'v' && messageeraseescape[4] == 'e'){
char token[32];
char buf[256]="";
int i;
easyGetTokenFromString( messageeraseescape , 2 , token, sizeof(token));
if(strcmp( token, "?") == 0){
strcpy( buf, "您可顺移地方:");
for(i=0;i<MAXTALKMOVEFLOOR;i++){
if( strlen( buf ) >= 220 ){
CHAR_talkToCli( charaindex, -1, buf, CHAR_COLORYELLOW);
strcpy( buf, "您可顺移地方:");
}
if( CHAR_getInt(charaindex, CHAR_TRANSMIGRATION) > talkmovefloor[i].trans
|| ( CHAR_getInt(charaindex, CHAR_TRANSMIGRATION) == talkmovefloor[i].trans
&& CHAR_getInt(charaindex, CHAR_LV) >= talkmovefloor[i].level ) ) {
strcat( buf, talkmovefloor[i].name);
strcat( buf, " ");
}
}
CHAR_talkToCli( charaindex, -1, buf, CHAR_COLORYELLOW);
return TRUE;
}
BOOL isMove = FALSE;
for(i=0;i<MAXTALKMOVEFLOOR;i++){
if(strcmp(talkmovefloor[i].name, token) == 0){
isMove = TRUE;
break;
}
}
if( isMove == TRUE ){
if( CHAR_getInt(charaindex, CHAR_TRANSMIGRATION) > talkmovefloor[i].trans
|| ( CHAR_getInt(charaindex, CHAR_TRANSMIGRATION) == talkmovefloor[i].trans
&& CHAR_getInt(charaindex, CHAR_LV) >= talkmovefloor[i].level ) ) {
CHAR_warpToSpecificPoint(charaindex, talkmovefloor[i].id, talkmovefloor[i].x, talkmovefloor[i].y );
return TRUE;
}
}
}
return FALSE;
}
BOOL MoveMap_init()
{
FILE* fp;
int i;
#ifdef _CRYPTO_DATA
BOOL crypto = FALSE;
fp = fopen( "data/talkmovefloor.txt.allblues", "r");
if( fp != NULL ){
crypto = TRUE;
}else
#endif
{
fp = fopen("data/talkmovefloor.txt", "r");
}
if (fp == NULL)
{
print("无法打开文件\n");
return FALSE;
}
for(i=0;i<MAXTALKMOVEFLOOR;i++){
char line[64], buf[16];
if (fgets(line, sizeof(line), fp) == NULL){
#ifdef _CRYPTO_DATA
if(crypto==TRUE){
DecryptKey(line);
}
#endif
memset( &talkmovefloor[i], 0, sizeof( talkmovefloor[i] ) );
continue;
}
chop(line);
getStringFromIndexWithDelim(line,",", 1, talkmovefloor[i].name, sizeof(talkmovefloor[i].name));
getStringFromIndexWithDelim(line,",", 2, buf, sizeof(buf));
talkmovefloor[i].id=atoi(buf);
getStringFromIndexWithDelim(line,",", 3, buf, sizeof(buf));
talkmovefloor[i].x=atoi(buf);
getStringFromIndexWithDelim(line,",", 4, buf, sizeof(buf));
talkmovefloor[i].y=atoi(buf);
getStringFromIndexWithDelim(line,",", 5, buf, sizeof(buf));
talkmovefloor[i].trans=atoi(buf);
getStringFromIndexWithDelim(line,",", 6, buf, sizeof(buf));
talkmovefloor[i].level=atoi(buf);
}
fclose(fp);
return TRUE;
}
#endif