📄 npc_riderman.c
字号:
lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE,
WINDOW_BUTTONTYPE_OK, -1, -1,
makeEscapeString( buf2, buf, sizeof(buf)));
return;
}
CHAR_DelGold( talkerindex, w.takegold );
CHAR_setInt( talkerindex, CHAR_LEARNRIDE, 80 );
CHAR_send_P_StatusString( talkerindex, CHAR_P_STRING_GOLD );
CHAR_send_P_StatusString( talkerindex, CHAR_P_STRING_LEARNRIDE );
//sprintf( buf, "R|L|1" );
//lssproto_FM_send( fd, buf );
lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE,
WINDOW_BUTTONTYPE_OK, -1, -1,
makeEscapeString( "\n\n恭喜你!你已经完成骑乘中级班了。\n可以骑乘 Lv80 以下的宠物,\n请小心骑乘喔!",
buf, sizeof(buf)));
// 家族收入
{
int fmindex, fmindexi, village, i;
char fmname[256], token[256], buf2[64];
sprintf( buf2, "%d", w.takegold/5 );
for( i=0 ; i<FMPOINTNUM ; i++ ) {
getStringFromIndexWithDelim(fmpointlist.pointlistarray[i], "|", 9, token, sizeof(token));
village = atoi(token);
if( village == CHAR_getInt( meindex, CHAR_FMINDEX ) ) {
getStringFromIndexWithDelim(fmpointlist.pointlistarray[i], "|", 5, token, sizeof(token));
fmindex = atoi(token);
getStringFromIndexWithDelim(fmpointlist.pointlistarray[i], "|", 6, token, sizeof(token));
strcpy(fmname, token);
getStringFromIndexWithDelim(fmpointlist.pointlistarray[i], "|", 8, token, sizeof(token));
fmindexi = atoi(token);
saacproto_ACFixFMData_send( acfd, fmname, fmindex, fmindexi,
FM_FIX_FMGOLD, buf2 , "",
CHAR_getWorkInt(meindex, CHAR_WORKFMCHARINDEX),
CONNECT_getFdid(fd) );
//print(" rider_fm:%s ", fmname);
}
}
}
return;
}
// 学习 Lv 120
if( newwin == 8 ) {
int charImg;
// int i, petindex, bFind = 0;
charImg = CHAR_getInt( talkerindex, CHAR_BASEBASEIMAGENUMBER);
if( CHAR_getInt( talkerindex, CHAR_LEARNRIDE ) >= 120 )
{
lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE,
WINDOW_BUTTONTYPE_OK, -1, -1,
makeEscapeString( "\n\n你已经学会高级班了呀。\n不需要再学了。",
buf, sizeof(buf)));
return;
}
else if( CHAR_getInt( talkerindex, CHAR_LEARNRIDE ) < 80 )
{
lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE,
WINDOW_BUTTONTYPE_OK, -1, -1,
makeEscapeString( "\n\n你必须先学过中级班才能来高级班唷。",
buf, sizeof(buf)));
return;
}
#if 0
if( !checkLetter( meindex, talkerindex) )
{
lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE,
WINDOW_BUTTONTYPE_OK, -1, -1,
makeEscapeString( "\n\n很抱歉喔!\n学习骑乘宠物需要本庄园族长的同意书。",
buf, sizeof(buf)));
return;
}
for( i=0; i<CHAR_MAXPETHAVE ; i++)
{
if( bFind ) break;
petindex = CHAR_getCharPet( talkerindex, i );
if( CHAR_CHECKINDEX(petindex) )
{
int petImg, j;
petImg = CHAR_getInt( petindex, CHAR_BASEBASEIMAGENUMBER);
for( j=0; j<arraysizeof(ridePetTable); j++)
{
if( ridePetTable[j].charNo == charImg
&& ridePetTable[j].petNo == petImg )
{
bFind = 1;
break;
}
}
}
}
if( bFind != 1 )
{
lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE,
WINDOW_BUTTONTYPE_OK, -1, -1,
makeEscapeString( "\n\n请先准备一只适合自己骑乘的宠物。",
buf, sizeof(buf)));
return;
}
if( !getLetter( meindex, talkerindex) ) return;
#endif
if( CHAR_getInt( talkerindex, CHAR_GOLD ) < w.takegold )
{
char buf2[512];
sprintf( buf2, "\n很抱歉喔!你的学费不足!\n学习骑乘宠物高级班需要%d石币", w.takegold);
lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE,
WINDOW_BUTTONTYPE_OK, -1, -1,
makeEscapeString( buf2, buf, sizeof(buf)));
return;
}
CHAR_DelGold( talkerindex, w.takegold );
CHAR_setInt( talkerindex, CHAR_LEARNRIDE, 120 );
CHAR_send_P_StatusString( talkerindex, CHAR_P_STRING_GOLD );
CHAR_send_P_StatusString( talkerindex, CHAR_P_STRING_LEARNRIDE );
//sprintf( buf, "R|L|1" );
//lssproto_FM_send( fd, buf );
lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE,
WINDOW_BUTTONTYPE_OK, -1, -1,
makeEscapeString( "\n\n恭喜你!你已经完成骑乘高级班了。\n可以骑乘 Lv120 以下的宠物,\n请小心骑乘喔!",
buf, sizeof(buf)));
// 家族收入
{
int fmindex, fmindexi, village, i;
char fmname[256], token[256], buf2[64];
sprintf( buf2, "%d", w.takegold/5 );
for( i=0 ; i<FMPOINTNUM ; i++ ) {
getStringFromIndexWithDelim(fmpointlist.pointlistarray[i], "|", 9, token, sizeof(token));
village = atoi(token);
if( village == CHAR_getInt( meindex, CHAR_FMINDEX ) ) {
getStringFromIndexWithDelim(fmpointlist.pointlistarray[i], "|", 5, token, sizeof(token));
fmindex = atoi(token);
getStringFromIndexWithDelim(fmpointlist.pointlistarray[i], "|", 6, token, sizeof(token));
strcpy(fmname, token);
getStringFromIndexWithDelim(fmpointlist.pointlistarray[i], "|", 8, token, sizeof(token));
fmindexi = atoi(token);
saacproto_ACFixFMData_send( acfd, fmname, fmindex, fmindexi,
FM_FIX_FMGOLD, buf2 , "",
CHAR_getWorkInt(meindex, CHAR_WORKFMCHARINDEX),
CONNECT_getFdid(fd) );
//print(" rider_fm:%s ", fmname);
}
}
}
return;
}
// 学习 Lv All
if( newwin == 9 ) {
int charImg;
// int petindex, i, bFind = 0;
charImg = CHAR_getInt( talkerindex, CHAR_BASEBASEIMAGENUMBER);
if( CHAR_getInt( talkerindex, CHAR_LEARNRIDE ) > 120 )
{
lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE,
WINDOW_BUTTONTYPE_OK, -1, -1,
makeEscapeString( "\n\n你已经学会特级班了呀。\n不需要再学了。",
buf, sizeof(buf)));
return;
}
else if( CHAR_getInt( talkerindex, CHAR_LEARNRIDE ) < 120 )
{
lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE,
WINDOW_BUTTONTYPE_OK, -1, -1,
makeEscapeString( "\n\n你必须先学过高级班才能来特级班唷。",
buf, sizeof(buf)));
return;
}
#if 0
if( !checkLetter( meindex, talkerindex) )
{
lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE,
WINDOW_BUTTONTYPE_OK, -1, -1,
makeEscapeString( "\n\n很抱歉喔!\n学习骑乘宠物需要本庄园族长的同意书。",
buf, sizeof(buf)));
return;
}
for( i=0; i<CHAR_MAXPETHAVE ; i++)
{
if( bFind ) break;
petindex = CHAR_getCharPet( talkerindex, i );
if( CHAR_CHECKINDEX(petindex) )
{
int petImg, j;
petImg = CHAR_getInt( petindex, CHAR_BASEBASEIMAGENUMBER);
for( j=0; j<arraysizeof(ridePetTable); j++)
{
if( ridePetTable[j].charNo == charImg
&& ridePetTable[j].petNo == petImg )
{
bFind = 1;
break;
}
}
}
}
if( bFind != 1 )
{
lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE,
WINDOW_BUTTONTYPE_OK, -1, -1,
makeEscapeString( "\n\n请先准备一只适合自己骑乘的宠物。",
buf, sizeof(buf)));
return;
}
if( !getLetter( meindex, talkerindex) ) return;
#endif
if( CHAR_getInt( talkerindex, CHAR_GOLD ) < w.takegold )
{
char buf2[512];
sprintf( buf2, "\n很抱歉喔!你的学费不足!\n学习骑乘宠物特级班需要%d石币", w.takegold);
lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE,
WINDOW_BUTTONTYPE_OK, -1, -1,
makeEscapeString( buf2, buf, sizeof(buf)));
return;
}
CHAR_DelGold( talkerindex, w.takegold );
CHAR_setInt( talkerindex, CHAR_LEARNRIDE, 200 );
CHAR_send_P_StatusString( talkerindex, CHAR_P_STRING_GOLD );
CHAR_send_P_StatusString( talkerindex, CHAR_P_STRING_LEARNRIDE );
//sprintf( buf, "R|L|1" );
//lssproto_FM_send( fd, buf );
lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE,
WINDOW_BUTTONTYPE_OK, -1, -1,
makeEscapeString( "\n\n恭喜你!你已经完成骑乘特级班了。\n可以骑乘所有等级的宠物,\n请小心骑乘喔!",
buf, sizeof(buf)));
// 家族收入
{
int fmindex, fmindexi, village, i;
char fmname[256], token[256], buf2[64];
sprintf( buf2, "%d", w.takegold/5 );
for( i=0 ; i<FMPOINTNUM ; i++ ) {
getStringFromIndexWithDelim(fmpointlist.pointlistarray[i], "|", 9, token, sizeof(token));
village = atoi(token);
if( village == CHAR_getInt( meindex, CHAR_FMINDEX ) ) {
getStringFromIndexWithDelim(fmpointlist.pointlistarray[i], "|", 5, token, sizeof(token));
fmindex = atoi(token);
getStringFromIndexWithDelim(fmpointlist.pointlistarray[i], "|", 6, token, sizeof(token));
strcpy(fmname, token);
getStringFromIndexWithDelim(fmpointlist.pointlistarray[i], "|", 8, token, sizeof(token));
fmindexi = atoi(token);
saacproto_ACFixFMData_send( acfd, fmname, fmindex, fmindexi,
FM_FIX_FMGOLD, buf2 , "",
CHAR_getWorkInt(meindex, CHAR_WORKFMCHARINDEX),
CONNECT_getFdid(fd) );
//print(" rider_fm:%s ", fmname);
}
}
}
return;
}
// 说明 , 列表
if( newwin == 5 )
{
lssproto_WN_send( fd, WINDOW_MESSAGETYPE_SHOWRIDEPET,
WINDOW_BUTTONTYPE_OK, -1, -1,
"" );
return;
}
if( !NPC_Riderman_readData( meindex, newwin, FALSE) ) {
print( "riderman:readdata error\n");
return;
}
#if 0
#endif
//fd = getfdFromCharaIndex( talkerindex);
if( fd != -1 ) {
lssproto_WN_send( fd, w.windowtype,
w.buttontype,
w.windowno+100,
CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX),
makeEscapeString( w.message, buf, sizeof(buf)));
}
}
}
/*
* 涩烂白央奶伙毛 氏匹隙烂今木凶windowno及犯□正毛本永玄允月
*
* 娄醒“
* meindex int 仇及NPC及charaindex
* windowno int 它奴件玉它 寞
*
*/
static BOOL NPC_Riderman_readData( int meindex, int windowno, BOOL chkflg)
{
int i;
int linenum = 0;
int endflg = FALSE;
int buttonendflg;
int winno = -1;
int buttonconfmode;
int b_mode;
int selectnum ;
int messagepos;
BOOL errflg = FALSE;
BOOL readflg = TRUE;
FILE *fp;
char argstr[NPC_UTIL_GETARGSTR_BUFSIZE];
char filename[64];
char opfile[128];
char line[1024];
char firstToken[1024];
char secondToken[1024];
/* 它奴件玉它及涩烂毛 曰 戈厌瞻 */
NPC_Util_GetArgStr( meindex, argstr, sizeof( argstr));
/* 涩烂白央奶伙 潸 */
NPC_Util_GetStrFromStrWithDelim( argstr, "conff", filename, sizeof( filename));
sprintf( opfile, "%s/", getNpcdir( ) );
strcat( opfile, filename);
fp = fopen( opfile, "r");
if( fp == NULL ) {
print( "riderman:file open error [%s]\n", opfile);
return FALSE;
}
while( readflg == TRUE ) {
endflg = FALSE;
buttonendflg = TRUE;
buttonconfmode = FALSE;
selectnum = 0;
messagepos = 0;
winno = -1;
b_mode = -1;
errflg = FALSE;
/* 赓渝祭 */
w.windowno = -1;
w.windowtype = -1;
w.buttontype = -1;
w.takeitem = -1;
w.giveitem = -1;
w.takegold = 0;
w.message[0] = '\0';
for( i = 0; i < arraysizeof( buttonproc); i ++ ) {
buttonproc[i].use = FALSE;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -