2016-12-24 08:45:52 +08:00
|
|
|
|
#include "version.h"
|
|
|
|
|
#include <stdio.h>
|
|
|
|
|
#include <string.h>
|
|
|
|
|
#include <ctype.h>
|
|
|
|
|
#include "object.h"
|
|
|
|
|
#include "char_base.h"
|
|
|
|
|
#include "char.h"
|
|
|
|
|
#include "util.h"
|
|
|
|
|
#include "npcutil.h"
|
|
|
|
|
#include "item.h"
|
|
|
|
|
#include "readmap.h"
|
|
|
|
|
#include "enemy.h"
|
|
|
|
|
#include "chatmagic.h"
|
|
|
|
|
#include "log.h"
|
|
|
|
|
#include "npc_itemchange.h"
|
|
|
|
|
#include "lssproto_serv.h"
|
|
|
|
|
#include "saacproto_cli.h"
|
|
|
|
|
#include "npc_eventaction.h"
|
|
|
|
|
#include "npc_charm.h"
|
|
|
|
|
|
|
|
|
|
#ifdef _ALLDOMAN
|
|
|
|
|
#include "npc_alldoman.h"
|
|
|
|
|
|
|
|
|
|
#define MAX_HERO_COLUMN 7
|
|
|
|
|
#define MAX_HERO_LIST 100
|
|
|
|
|
char Herolist[MAX_HERO_LIST][MAX_HERO_COLUMN][72];
|
|
|
|
|
|
|
|
|
|
int sort[MAX_HERO_LIST][2];
|
|
|
|
|
int countnum = -1 ;
|
|
|
|
|
int showpage = 1 ;
|
|
|
|
|
int totalpage = 1;
|
|
|
|
|
|
|
|
|
|
static void NPC_Alldoman_selectWindow( int meindex, int talker, int seqno,char *data);
|
|
|
|
|
|
|
|
|
|
void NPC_AlldomanWindowTalked(int meindex, int talkerindex, int seqno, int select,char *data)
|
|
|
|
|
{
|
|
|
|
|
char buf2[256];
|
|
|
|
|
char buf[256];
|
|
|
|
|
int i;
|
|
|
|
|
int playernum = CHAR_getPlayerMaxNum();
|
|
|
|
|
//andy_log
|
|
|
|
|
print( "seqno:%d\n", seqno);
|
|
|
|
|
switch(seqno)
|
|
|
|
|
{
|
|
|
|
|
case NPC_ALLDOMAN_MAIN_WND:
|
|
|
|
|
if ( select == WINDOW_BUTTONTYPE_NEXT ) {
|
|
|
|
|
showpage ++ ;
|
|
|
|
|
NPC_Alldoman_selectWindow(meindex , talkerindex , 4 ,"");
|
|
|
|
|
}
|
|
|
|
|
if ( select == WINDOW_BUTTONTYPE_OK ) {
|
2017-01-13 23:37:03 +08:00
|
|
|
|
//CHAR_talkToCli(talkerindex,meindex,"看清楚了!",CHAR_COLORRED);
|
2016-12-24 08:45:52 +08:00
|
|
|
|
showpage = 1 ;
|
|
|
|
|
NPC_Alldoman_selectWindow(meindex , talkerindex, 5 ,"");
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case NPC_ALLDOMAN_SELECT_WND:
|
|
|
|
|
if(atoi(data)==2) {
|
2017-01-13 23:37:03 +08:00
|
|
|
|
//CHAR_talkToCli(talkerindex,meindex,"1!",CHAR_COLORRED);
|
2016-12-24 08:45:52 +08:00
|
|
|
|
if ( CHAR_getInt( talkerindex , CHAR_FLOOR ) != 8200 ) {
|
2017-01-13 23:37:03 +08:00
|
|
|
|
CHAR_talkToCli(talkerindex,-1,"这里只能给真正的英雄刻写!",CHAR_COLORRED);
|
2016-12-24 08:45:52 +08:00
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
if ( CHAR_getWorkInt( talkerindex , CHAR_WORKHEROFLOOR ) > 132 ||
|
|
|
|
|
CHAR_getWorkInt( talkerindex , CHAR_WORKHEROFLOOR ) <= 0 ) {
|
|
|
|
|
CHAR_setWorkInt( talkerindex , CHAR_WORKHEROFLOOR , 0 ) ;
|
2017-01-13 23:37:03 +08:00
|
|
|
|
CHAR_talkToCli(talkerindex,-1,"这里只能给真正的英雄刻写!",CHAR_COLORRED);
|
2016-12-24 08:45:52 +08:00
|
|
|
|
break;
|
|
|
|
|
}
|
2017-01-13 23:37:03 +08:00
|
|
|
|
sprintf( buf2 , "你拿出了打败守灵者%3d的证明,试图将自己的姓名刻上石碑!" , CHAR_getWorkInt( talkerindex , CHAR_WORKHEROFLOOR ) );
|
2016-12-24 08:45:52 +08:00
|
|
|
|
CHAR_talkToCli(talkerindex,-1,buf2,CHAR_COLORRED);
|
|
|
|
|
if ( CHAR_getWorkInt( talkerindex , CHAR_WORKHEROFLOOR ) == 132 ) {
|
2017-01-13 23:37:03 +08:00
|
|
|
|
sprintf( buf2 , "%s" , "尼斯大陆英雄" ) ;
|
|
|
|
|
//到达顶层对全星系广播
|
|
|
|
|
sprintf( buf , "%s征服了英雄战场,由风之精灵将这个消息通知全世界,新的英雄诞生了!!" , CHAR_getChar( talkerindex, CHAR_NAME ) );
|
2016-12-24 08:45:52 +08:00
|
|
|
|
for( i = 0 ; i < playernum ; i++) {
|
|
|
|
|
if( CHAR_getCharUse(i) != FALSE ) {
|
|
|
|
|
CHAR_talkToCli( i, -1, buf, CHAR_COLORBLUE2);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if ( CHAR_getWorkInt( talkerindex , CHAR_WORKHEROFLOOR ) >= 130 )
|
2017-01-13 23:37:03 +08:00
|
|
|
|
sprintf( buf2 , "%s" , "尼斯大陆战士" ) ;
|
2016-12-24 08:45:52 +08:00
|
|
|
|
else if ( CHAR_getWorkInt( talkerindex , CHAR_WORKHEROFLOOR ) >= 125 )
|
2017-01-13 23:37:03 +08:00
|
|
|
|
sprintf( buf2 , "%s" , "尼斯大陆勇士" ) ;
|
2016-12-24 08:45:52 +08:00
|
|
|
|
else if ( CHAR_getWorkInt( talkerindex , CHAR_WORKHEROFLOOR ) >= 120 )
|
2017-01-13 23:37:03 +08:00
|
|
|
|
sprintf( buf2 , "%s" , "萨伊那斯英雄" ) ;
|
2016-12-24 08:45:52 +08:00
|
|
|
|
else if ( CHAR_getWorkInt( talkerindex , CHAR_WORKHEROFLOOR ) >= 115 )
|
2017-01-13 23:37:03 +08:00
|
|
|
|
sprintf( buf2 , "%s" , "斯巴达战士" ) ;
|
2016-12-24 08:45:52 +08:00
|
|
|
|
else if ( CHAR_getWorkInt( talkerindex , CHAR_WORKHEROFLOOR ) >= 110 )
|
2017-01-13 23:37:03 +08:00
|
|
|
|
sprintf( buf2 , "%s" , "萨姆吉尔战士" ) ;
|
2016-12-24 08:45:52 +08:00
|
|
|
|
else if ( CHAR_getWorkInt( talkerindex , CHAR_WORKHEROFLOOR ) >= 100 )
|
2017-01-13 23:37:03 +08:00
|
|
|
|
sprintf( buf2 , "%s" , "玛丽那丝战士" ) ;
|
2016-12-24 08:45:52 +08:00
|
|
|
|
else if ( CHAR_getWorkInt( talkerindex , CHAR_WORKHEROFLOOR ) >= 80 )
|
2017-01-13 23:37:03 +08:00
|
|
|
|
sprintf( buf2 , "%s" , "卡坦战士" ) ;
|
2016-12-24 08:45:52 +08:00
|
|
|
|
else if ( CHAR_getWorkInt( talkerindex , CHAR_WORKHEROFLOOR ) >= 60 )
|
2017-01-13 23:37:03 +08:00
|
|
|
|
sprintf( buf2 , "%s" , "霍特尔战士" ) ;
|
2016-12-24 08:45:52 +08:00
|
|
|
|
else if ( CHAR_getWorkInt( talkerindex , CHAR_WORKHEROFLOOR ) >= 40 )
|
2017-01-13 23:37:03 +08:00
|
|
|
|
sprintf( buf2 , "%s" , "降魔勇士" ) ;
|
2016-12-24 08:45:52 +08:00
|
|
|
|
else if ( CHAR_getWorkInt( talkerindex , CHAR_WORKHEROFLOOR ) >= 20 )
|
2017-01-13 23:37:03 +08:00
|
|
|
|
sprintf( buf2 , "%s" , "圣灵勇士" ) ;
|
2016-12-24 08:45:52 +08:00
|
|
|
|
else if ( CHAR_getWorkInt( talkerindex , CHAR_WORKHEROFLOOR ) >= 1 )
|
2017-01-13 23:37:03 +08:00
|
|
|
|
sprintf( buf2 , "%s" , "初犊勇士" ) ;
|
2016-12-24 08:45:52 +08:00
|
|
|
|
else
|
|
|
|
|
sprintf( buf2 , " " );
|
|
|
|
|
saacproto_UpdataStele_send (
|
|
|
|
|
acfd ,
|
|
|
|
|
CHAR_getChar( talkerindex , CHAR_CDKEY ),
|
|
|
|
|
CHAR_getChar( talkerindex , CHAR_NAME ) ,
|
|
|
|
|
buf2 ,
|
|
|
|
|
CHAR_getInt( talkerindex , CHAR_LV ) ,
|
|
|
|
|
CHAR_getInt( talkerindex , CHAR_TRANSMIGRATION) ,
|
|
|
|
|
10 ,
|
|
|
|
|
CHAR_getWorkInt( talkerindex , CHAR_WORKHEROFLOOR )
|
|
|
|
|
) ;
|
2017-01-13 23:37:03 +08:00
|
|
|
|
//清除WorkFloor
|
2016-12-24 08:45:52 +08:00
|
|
|
|
CHAR_setWorkInt( talkerindex , CHAR_WORKHEROFLOOR , 0 ) ;
|
|
|
|
|
}
|
|
|
|
|
if(atoi(data)==4) {
|
2017-01-13 23:37:03 +08:00
|
|
|
|
//CHAR_talkToCli(talkerindex,meindex,"2!",CHAR_COLORRED);
|
2016-12-24 08:45:52 +08:00
|
|
|
|
showpage = 1 ;
|
|
|
|
|
NPC_Alldoman_selectWindow(meindex , talkerindex, 6 ,"");
|
|
|
|
|
}
|
|
|
|
|
if(atoi(data)==6) {
|
2017-01-13 23:37:03 +08:00
|
|
|
|
//CHAR_talkToCli(talkerindex,meindex,"3!",CHAR_COLORRED);
|
2016-12-24 08:45:52 +08:00
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case NPC_ALLDOMAN_LIST_WND:
|
|
|
|
|
if( select == WINDOW_BUTTONTYPE_OK ){
|
|
|
|
|
print("\nSyu log FloorWorkint => %d" , CHAR_getWorkInt( talkerindex , CHAR_WORKHEROFLOOR ));
|
|
|
|
|
}
|
|
|
|
|
if( select == WINDOW_BUTTONTYPE_PREV && showpage > 1 ) {
|
|
|
|
|
showpage -- ;
|
|
|
|
|
NPC_Alldoman_selectWindow(meindex , talkerindex, 6 ,"" );
|
|
|
|
|
}
|
|
|
|
|
if( select == WINDOW_BUTTONTYPE_NEXT && showpage < totalpage ) {
|
|
|
|
|
showpage ++ ;
|
|
|
|
|
NPC_Alldoman_selectWindow(meindex , talkerindex, 6 ,"");
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void NPC_Alldoman_selectWindow( int meindex, int talker, int num, char *data)
|
|
|
|
|
{
|
|
|
|
|
int buttontype = 0,windowtype = 0,windowno = 0 , i ;
|
|
|
|
|
int fd = getfdFromCharaIndex( talker);
|
|
|
|
|
char token[1024];
|
|
|
|
|
char token2[100 * 100];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//andy_log
|
|
|
|
|
print( "NPC_Alldoman_selectWindow( num:%d)\n", num);
|
|
|
|
|
switch(num)
|
|
|
|
|
{
|
|
|
|
|
case 4:
|
|
|
|
|
if ( showpage == 1 ) {
|
|
|
|
|
buttontype = WINDOW_BUTTONTYPE_NEXT;
|
2017-01-13 23:37:03 +08:00
|
|
|
|
sprintf( token, "485447圣饼时,吉鲁出现大批机暴横行,所到之处皆无一幸免,尼斯各村的长老达成共识,调集各村勇士,前往消灭这群发狂的机暴,这群勇士在海底隧道入口跟这群机暴激战,不料,实力相差悬殊,勇士们伤亡惨重,残余的勇士,选择在霍特尔海底通路的入口做最");
|
2016-12-24 08:45:52 +08:00
|
|
|
|
}
|
|
|
|
|
else if ( showpage == 2 ) {
|
|
|
|
|
buttontype = WINDOW_BUTTONTYPE_NEXT;
|
2017-01-13 23:37:03 +08:00
|
|
|
|
sprintf( token, "後的的抵抗,各村长老召集大批人力,封死所有通往吉鲁的海底通道,终於在大批机暴涌入前,将入口封死,此地为485550圣饼时所建造,为纪念485447圣饼时所牺牲的勇士,立此石碑,建此地洞,命名为“英雄战场”,望後世人效法先烈的行径,达到强种强");
|
2016-12-24 08:45:52 +08:00
|
|
|
|
}
|
|
|
|
|
else if ( showpage == 3) {
|
|
|
|
|
buttontype = WINDOW_BUTTONTYPE_OK;
|
2017-01-13 23:37:03 +08:00
|
|
|
|
sprintf( token, "族为目的,让尼斯大陆的人们生生不息,上面的英雄是最近勇闯“英雄战场”所留下来的,特此诏告全尼斯英雄!\n\n 英雄战场制作委员会");
|
2016-12-24 08:45:52 +08:00
|
|
|
|
}
|
|
|
|
|
windowtype = WINDOW_MESSAGETYPE_MESSAGE;
|
|
|
|
|
windowno = NPC_ALLDOMAN_MAIN_WND;
|
|
|
|
|
lssproto_WN_send(fd, windowtype, buttontype, windowno,
|
|
|
|
|
CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX), token );
|
|
|
|
|
break;
|
|
|
|
|
case 5:
|
|
|
|
|
buttontype = WINDOW_BUTTONTYPE_NONE;
|
|
|
|
|
windowtype = WINDOW_MESSAGETYPE_SELECT;
|
|
|
|
|
windowno = NPC_ALLDOMAN_SELECT_WND;
|
|
|
|
|
sprintf(token,
|
2017-01-13 23:37:03 +08:00
|
|
|
|
"0\n\n 刻写石碑"
|
|
|
|
|
"\n\n 检视其他勇者"
|
|
|
|
|
"\n\n 取消"
|
2016-12-24 08:45:52 +08:00
|
|
|
|
);
|
|
|
|
|
lssproto_WN_send( fd, windowtype, buttontype, windowno,
|
|
|
|
|
CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX),token);
|
|
|
|
|
break;
|
|
|
|
|
case 6:
|
|
|
|
|
if ( totalpage != 1 && showpage == 1 )
|
|
|
|
|
buttontype = WINDOW_BUTTONTYPE_OK | WINDOW_BUTTONTYPE_NEXT;
|
|
|
|
|
else if ( totalpage == 1 )
|
|
|
|
|
buttontype = WINDOW_BUTTONTYPE_OK ;
|
|
|
|
|
else if ( totalpage != 1 && showpage == totalpage )
|
|
|
|
|
buttontype = WINDOW_BUTTONTYPE_OK | WINDOW_BUTTONTYPE_PREV;
|
|
|
|
|
else if ( totalpage != 1 && showpage != 1 && showpage != totalpage )
|
|
|
|
|
buttontype = WINDOW_BUTTONTYPE_OK | WINDOW_BUTTONTYPE_PREV | WINDOW_BUTTONTYPE_NEXT;
|
|
|
|
|
windowtype = WINDOW_MESSAGETYPE_WIDEMESSAGEANDLINEINPUT;
|
|
|
|
|
windowno = NPC_ALLDOMAN_LIST_WND;
|
2017-01-13 23:37:03 +08:00
|
|
|
|
sprintf ( token2 , " 姓名 头衔 楼层 等级 转生\n");
|
2016-12-24 08:45:52 +08:00
|
|
|
|
for ( i=0+(showpage-1 )*15; i<showpage*15; i++) {
|
|
|
|
|
if( atoi ( Herolist[sort[MAX_HERO_LIST - 1 - i ][1]][6] ) == 0 ||
|
|
|
|
|
atoi ( Herolist[sort[MAX_HERO_LIST - 1 - i ][1]][3] ) == 0 )
|
|
|
|
|
continue ;
|
|
|
|
|
sprintf( token , "%16s %13s %7d %7d %7d\n" ,
|
|
|
|
|
Herolist[sort[MAX_HERO_LIST - 1 - i ][1]][1] ,
|
|
|
|
|
Herolist[sort[MAX_HERO_LIST - 1 - i ][1]][2] ,
|
|
|
|
|
atoi ( Herolist[sort[MAX_HERO_LIST - 1 - i ][1]][6] ),
|
|
|
|
|
atoi ( Herolist[sort[MAX_HERO_LIST - 1 - i ][1]][3] ),
|
|
|
|
|
atoi ( Herolist[sort[MAX_HERO_LIST - 1 - i ][1]][4] )
|
|
|
|
|
);
|
|
|
|
|
strcat ( token2 , token ) ;
|
|
|
|
|
if ( i + 1 == countnum )
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
lssproto_WN_send( fd, windowtype, buttontype, windowno,
|
|
|
|
|
CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX),token2);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static int loadherolist = 0;
|
|
|
|
|
BOOL NPC_AlldomanInit( int meindex )
|
|
|
|
|
{
|
|
|
|
|
if( loadherolist == 0){
|
|
|
|
|
loadherolist = 1;
|
2017-01-13 23:37:03 +08:00
|
|
|
|
saacproto_UpdataStele_send ( acfd , "FirstLoad", "LoadHerolist" , "华义" , 0 , 0 , 0 , 999 ) ;
|
2016-12-24 08:45:52 +08:00
|
|
|
|
}
|
|
|
|
|
CHAR_setInt( meindex , CHAR_WHICHTYPE , CHAR_TYPEALLDOMAN);
|
|
|
|
|
CHAR_setFlg( meindex , CHAR_ISATTACKED , 0 );
|
|
|
|
|
return TRUE;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void NPC_AlldomanTalked( int meindex , int talker , char *msg ,int color )
|
|
|
|
|
{
|
|
|
|
|
if( NPC_Util_CharDistance( talker, meindex ) > 1) return;
|
|
|
|
|
if( NPC_Util_isFaceToFace( talker, meindex , 1 ) == FALSE ) return;
|
|
|
|
|
showpage = 1 ;
|
|
|
|
|
NPC_Alldoman_selectWindow(meindex, talker , 4 ,"");
|
|
|
|
|
}
|
|
|
|
|
void NPC_AlldomanWriteStele ( char *token )
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
int linenum = 0 , i , flag , temp , temp1 , j ;
|
|
|
|
|
int lens=0;
|
|
|
|
|
char *addr;
|
|
|
|
|
if( token == NULL || (lens = strlen( token)) <= 0 ) return;
|
|
|
|
|
while( linenum < 100 ){
|
|
|
|
|
for ( i = 0 ; i < MAX_HERO_COLUMN ; i ++ ) {
|
|
|
|
|
if( getStringFromIndexWithDelim( token, "|", i + 1 , Herolist[ linenum ][ i ] , sizeof( Herolist[ linenum ][ i ] ) ) == FALSE ){
|
|
|
|
|
#ifdef _ALLDOMAN_DEBUG
|
|
|
|
|
countnum = 0 ;
|
|
|
|
|
for ( i = 0 ; i < MAX_HERO_LIST ; i ++ ) {
|
|
|
|
|
sort[i][0] = atoi ( Herolist[i][6] ) ;
|
|
|
|
|
sort[i][1] = i ;
|
|
|
|
|
if ( sort[i][0] != 0 && sort[i][0] != -1 )
|
|
|
|
|
countnum ++ ;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for ( i = 0 ; i < MAX_HERO_LIST - 1 ; i ++ ) {
|
|
|
|
|
flag = 0 ;
|
|
|
|
|
for ( j = 0 ; j < MAX_HERO_LIST - 1 ; j ++ ) {
|
|
|
|
|
if ( sort[j][0] > sort[j+1][0] ){
|
|
|
|
|
flag = 1 ;
|
|
|
|
|
temp = sort[j][0];
|
|
|
|
|
temp1 = sort[j][1];
|
|
|
|
|
sort[j][0] = sort[j + 1][0];
|
|
|
|
|
sort[j][1] = sort[j + 1][1];
|
|
|
|
|
sort[j+1][0] = temp;
|
|
|
|
|
sort[j+1][1] = temp1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if ( flag != 1 )
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
totalpage = countnum / 15 ;
|
|
|
|
|
if ( ( countnum % 15 ) != 0 )
|
|
|
|
|
totalpage ++;
|
|
|
|
|
#endif
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
linenum ++;
|
|
|
|
|
|
|
|
|
|
if ( (addr = strstr ( token , "\n" )) == NULL ) break;
|
|
|
|
|
strcpy ( token , addr + 1 ) ;
|
|
|
|
|
if( token == NULL || (lens = strlen( token)) <= 0 ) {
|
|
|
|
|
#ifdef _ALLDOMAN_DEBUG
|
|
|
|
|
countnum = 0 ;
|
|
|
|
|
for ( i = 0 ; i < MAX_HERO_LIST ; i ++ ) {
|
|
|
|
|
sort[i][0] = atoi ( Herolist[i][6] ) ;
|
|
|
|
|
sort[i][1] = i ;
|
|
|
|
|
if ( sort[i][0] != 0 && sort[i][0] != -1 )
|
|
|
|
|
countnum ++ ;
|
|
|
|
|
}
|
|
|
|
|
for ( i = 0 ; i < MAX_HERO_LIST - 1 ; i ++ ) {
|
|
|
|
|
flag = 0 ;
|
|
|
|
|
for ( j = 0 ; j < MAX_HERO_LIST - 1 ; j ++ ) {
|
|
|
|
|
if ( sort[j][0] > sort[j+1][0] ){
|
|
|
|
|
flag = 1 ;
|
|
|
|
|
temp = sort[j][0];
|
|
|
|
|
temp1 = sort[j][1];
|
|
|
|
|
sort[j][0] = sort[j + 1][0];
|
|
|
|
|
sort[j][1] = sort[j + 1][1];
|
|
|
|
|
sort[j+1][0] = temp;
|
|
|
|
|
sort[j+1][1] = temp1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if ( flag != 1 )
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
totalpage = countnum / 15 ;
|
|
|
|
|
if ( ( countnum % 15 ) != 0 )
|
|
|
|
|
totalpage ++;
|
|
|
|
|
#endif
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
countnum = 0 ;
|
|
|
|
|
for ( i = 0 ; i < MAX_HERO_LIST ; i ++ ) {
|
|
|
|
|
sort[i][0] = atoi ( Herolist[i][6] ) ;
|
|
|
|
|
sort[i][1] = i ;
|
|
|
|
|
if ( sort[i][0] != 0 && sort[i][0] != -1 )
|
|
|
|
|
countnum ++ ;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for ( i = 0 ; i < MAX_HERO_LIST - 1 ; i ++ ) {
|
|
|
|
|
flag = 0 ;
|
|
|
|
|
for ( j = 0 ; j < MAX_HERO_LIST - 1 ; j ++ ) {
|
|
|
|
|
if ( sort[j][0] > sort[j+1][0] ){
|
|
|
|
|
flag = 1 ;
|
|
|
|
|
temp = sort[j][0];
|
|
|
|
|
temp1 = sort[j][1];
|
|
|
|
|
sort[j][0] = sort[j + 1][0];
|
|
|
|
|
sort[j][1] = sort[j + 1][1];
|
|
|
|
|
sort[j+1][0] = temp;
|
|
|
|
|
sort[j+1][1] = temp1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if ( flag != 1 )
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
totalpage = countnum / 15 ;
|
|
|
|
|
if ( ( countnum % 15 ) != 0 )
|
|
|
|
|
totalpage ++;
|
|
|
|
|
//#endif
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void NPC_Alldoman_S_WriteStele( char *ocdkey , char *oname , char *ncdkey ,
|
|
|
|
|
char *nname , char *title , int level , int trns , int floor )
|
|
|
|
|
{
|
|
|
|
|
int i , j , temp , temp1 , flag ;
|
|
|
|
|
for ( i = 0 ; i < MAX_HERO_COLUMN ; i ++ ) {
|
|
|
|
|
if ( ( strcmp( Herolist[i][0] , ocdkey ) == 0 ) && ( strcmp( Herolist[i][1] , oname ) == 0 ) ) {
|
|
|
|
|
sprintf( Herolist[i][0] , "%s" , ncdkey ) ;
|
|
|
|
|
sprintf( Herolist[i][1] , "%s" , nname ) ;
|
|
|
|
|
sprintf( Herolist[i][2] , "%s" , title ) ;
|
|
|
|
|
sprintf( Herolist[i][3] , "%d" , level ) ;
|
|
|
|
|
sprintf( Herolist[i][4] , "%d" , trns ) ;
|
|
|
|
|
sprintf( Herolist[i][6] , "%d" , floor ) ;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
countnum = 0 ;
|
|
|
|
|
for ( i = 0 ; i < MAX_HERO_LIST ; i ++ ) {
|
|
|
|
|
sort[i][0] = atoi ( Herolist[i][6] ) ;
|
|
|
|
|
sort[i][1] = i ;
|
|
|
|
|
if ( sort[i][0] != 0 && sort[i][0] != -1 )
|
|
|
|
|
countnum ++ ;
|
|
|
|
|
}
|
|
|
|
|
for ( i = 0 ; i < MAX_HERO_LIST - 1 ; i ++ ) {
|
|
|
|
|
flag = 0 ;
|
|
|
|
|
for ( j = 0 ; j < MAX_HERO_LIST - 1 ; j ++ ) {
|
|
|
|
|
if ( sort[j][0] > sort[j+1][0] ){
|
|
|
|
|
flag = 1 ;
|
|
|
|
|
temp = sort[j][0];
|
|
|
|
|
temp1 = sort[j][1];
|
|
|
|
|
sort[j][0] = sort[j + 1][0];
|
|
|
|
|
sort[j][1] = sort[j + 1][1];
|
|
|
|
|
sort[j+1][0] = temp;
|
|
|
|
|
sort[j+1][1] = temp1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if ( flag != 1 )
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
totalpage = countnum / 15 ;
|
|
|
|
|
if ( ( countnum % 15 ) != 0 )
|
|
|
|
|
totalpage ++ ;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|